diff --git a/app/profile/[id]/profile-page-client.tsx b/app/profile/[id]/profile-page-client.tsx index 22fb5bc..93fbdc8 100644 --- a/app/profile/[id]/profile-page-client.tsx +++ b/app/profile/[id]/profile-page-client.tsx @@ -22,28 +22,37 @@ interface ProfilePageClientProps { export function ProfilePageClient({ profile, recentContributions }: ProfilePageClientProps) { return ( -
- +
+
+
+ +
+
- +
+
+ +
+
-
-

Recent Contributions

- +
+
+

Recent Contributions

+ +
) diff --git a/app/profile/page.tsx b/app/profile/page.tsx index b71bd5c..775a262 100644 --- a/app/profile/page.tsx +++ b/app/profile/page.tsx @@ -84,61 +84,77 @@ export default function ProfilePage() { ] return ( -
- +
+ {/* Profile header section */} + +
+ +
+
- + {/* Stats section */} + +
+ +
+
- {/* Tabs */} -
- {tabs.map((tab) => ( - + ))} +
+ + {/* Tab Content */} + - - {tab.label} - - ))} -
+ {activeTab === "overview" && ( +
+

Recent Contributions

+ +
+ )} - {/* Tab Content */} - - {activeTab === "overview" && ( -
-

Recent Contributions

- -
- )} + {activeTab === "saved" && } - {activeTab === "saved" && } - - {activeTab === "settings" && ( -
- -

Account settings will appear here

-
- )} + {activeTab === "settings" && ( +
+ +

Account settings will appear here

+
+ )} +
+
) diff --git a/components/profile/profile-header.tsx b/components/profile/profile-header.tsx index 6070260..02cb5a1 100644 --- a/components/profile/profile-header.tsx +++ b/components/profile/profile-header.tsx @@ -1,24 +1,23 @@ "use client" -import Image from "next/image" -import { User, Shield, Crown, CheckCircle } from "lucide-react" +import { Shield, Crown, CheckCircle, Mail } from "lucide-react" import { motion } from "motion/react" interface ProfileHeaderProps { name: string - image: string | null + email?: string role: string | null verified: boolean createdAt: string } -const roleConfig: Record = { +const roleConfig: Record = { admin: { label: "Admin", color: "bg-yellow-500/20 text-yellow-400 border-yellow-500/30", icon: Crown }, contributor: { label: "Contributor", color: "bg-blue-500/20 text-blue-400 border-blue-500/30", icon: Shield }, - user: { label: "Member", color: "bg-text/10 text-text/60 border-text/20", icon: User }, + user: { label: "Member", color: "bg-text/10 text-text/60 border-text/20", icon: Shield }, } -export function ProfileHeader({ name, image, role, verified, createdAt }: ProfileHeaderProps) { +export function ProfileHeader({ name, email, role, verified, createdAt }: ProfileHeaderProps) { const config = roleConfig[role || "user"] || roleConfig.user const RoleIcon = config.icon @@ -31,39 +30,32 @@ export function ProfileHeader({ name, image, role, verified, createdAt }: Profil -
- {image ? ( - {name} - ) : ( -
- -
- )} +
+

{name}

+ + + {config.label} + {verified && ( -
- -
+ + + Verified + )}
- -
-
-

{name}

- - - {config.label} - -
-

Member since {joinDate}

+
+ Member since {joinDate} + {email && ( + <> + · + + + {email} + + + )}
)