From 32c9065f6f7a44477f101a867562aa2455ae8e26 Mon Sep 17 00:00:00 2001 From: shafin-r Date: Wed, 16 Jul 2025 16:25:26 +0600 Subject: [PATCH] fix(ui): fix profile screen --- app/(tabs)/profile/page.tsx | 94 +++++++++++++++++++++++++ app/(tabs)/settings/page.tsx | 120 +++++++++++++++++++++++++++++-- bun.lockb | Bin 175288 -> 175805 bytes components/ProfileManager.tsx | 129 ++++++++++++++++++++++++++++++++++ components/ui/input.tsx | 21 ++++++ components/ui/label.tsx | 24 +++++++ package.json | 1 + 7 files changed, 385 insertions(+), 4 deletions(-) create mode 100644 app/(tabs)/profile/page.tsx create mode 100644 components/ProfileManager.tsx create mode 100644 components/ui/input.tsx create mode 100644 components/ui/label.tsx diff --git a/app/(tabs)/profile/page.tsx b/app/(tabs)/profile/page.tsx new file mode 100644 index 0000000..77f70a2 --- /dev/null +++ b/app/(tabs)/profile/page.tsx @@ -0,0 +1,94 @@ +"use client"; + +import ProfileManager from "@/components/ProfileManager"; +import { Avatar, AvatarFallback } from "@/components/ui/avatar"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import { getToken, API_URL } from "@/lib/auth"; +import { ChevronLeft, Edit2, Lock, Save } from "lucide-react"; +import { useRouter } from "next/navigation"; +import React, { useEffect, useState } from "react"; + +interface UserData { + name: string; + institution: string; + sscRoll: string; + hscRoll: string; + email: string; + phone: string; +} + +const ProfilePage = () => { + const router = useRouter(); + + const [userData, setUserData] = useState(); + const [editStatus, setEditStatus] = useState(false); + + useEffect(() => { + async function fetchUser() { + try { + const token = await getToken(); + if (!token) return; + + const response = await fetch(`${API_URL}/me`, { + method: "GET", + headers: { + Authorization: `Bearer ${token}`, + }, + }); + + if (response.ok) { + const fetchedUserData = await response.json(); + setUserData(fetchedUserData); + } + } catch (error) { + console.error("Error fetching user data: ", error); + } + } + + fetchUser(); + }, []); + + return ( +
+
+ +
+
+ + + {userData?.name ? userData.name.charAt(0).toUpperCase() : ""} + + +
+ + + +
+
+
+ ); +}; + +export default ProfilePage; diff --git a/app/(tabs)/settings/page.tsx b/app/(tabs)/settings/page.tsx index b268f73..757e8ba 100644 --- a/app/(tabs)/settings/page.tsx +++ b/app/(tabs)/settings/page.tsx @@ -3,8 +3,20 @@ import BackgroundWrapper from "@/components/BackgroundWrapper"; import { Avatar, AvatarFallback } from "@/components/ui/avatar"; import { API_URL, getToken } from "@/lib/auth"; -import { MoveLeft, UserCircle2 } from "lucide-react"; -import Image from "next/image"; +import { + Bookmark, + ChartColumn, + ChevronRight, + Clock4, + CreditCard, + Crown, + Globe, + LogOut, + MapPin, + MoveLeft, + Trash2, + UserCircle2, +} from "lucide-react"; import { useRouter } from "next/navigation"; import React, { useEffect, useState } from "react"; @@ -28,7 +40,6 @@ const SettingsPage = () => { if (response.ok) { const fetchedUserData = await response.json(); setUserData(fetchedUserData); - console.log(fetchedUserData); } } catch (error) { console.error("Error fetching user data: ", error); @@ -63,12 +74,113 @@ const SettingsPage = () => { : ""} -
+

{userData?.name}

{userData?.email}

+
+ +
+
+ +

+ Bookmarks +

+
+ +
+
+
+ +

+ Payments +

+
+ +
+
+
+
+ +

+ Languages +

+
+ +
+
+
+ +

+ Location +

+
+ +
+
+
+ +

+ Subscription +

+
+ +
+
+
+ +

+ Performance +

+
+ +
+
+
+
+ +

+ Clear Cache +

+
+ +
+
+
+ +

+ Clear History +

+
+ +
+
+
+ +

+ Log out +

+
+ +
+
+

+ ExamJam | Version 1.0 +

+
diff --git a/bun.lockb b/bun.lockb index 053d8bea2c80245f9b0fb40dd4a14c5863c88ebf..90fb462ed520e9b57f8ce136503519275112b3e8 100644 GIT binary patch delta 31206 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 delta 30933 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 F{|9xxZ +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + ); +} diff --git a/components/ui/input.tsx b/components/ui/input.tsx new file mode 100644 index 0000000..03295ca --- /dev/null +++ b/components/ui/input.tsx @@ -0,0 +1,21 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +function Input({ className, type, ...props }: React.ComponentProps<"input">) { + return ( + + ) +} + +export { Input } diff --git a/components/ui/label.tsx b/components/ui/label.tsx new file mode 100644 index 0000000..fb5fbc3 --- /dev/null +++ b/components/ui/label.tsx @@ -0,0 +1,24 @@ +"use client" + +import * as React from "react" +import * as LabelPrimitive from "@radix-ui/react-label" + +import { cn } from "@/lib/utils" + +function Label({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +export { Label } diff --git a/package.json b/package.json index caabb55..5097e8c 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ }, "dependencies": { "@radix-ui/react-avatar": "^1.1.10", + "@radix-ui/react-label": "^2.1.7", "@radix-ui/react-slot": "^1.2.3", "capacitor-secure-storage-plugin": "^0.11.0", "clsx": "^2.1.1",