diff --git a/app/(auth)/login/page.tsx b/app/(auth)/login/page.tsx index b2c5a73..d16d30b 100644 --- a/app/(auth)/login/page.tsx +++ b/app/(auth)/login/page.tsx @@ -21,7 +21,7 @@ export default async function Login(props: { return (
{/* Left Side - Visual / Branding */} -
+
{/* Background elements */}
@@ -33,7 +33,7 @@ export default async function Login(props: {
-

+

Welcome back to your dashboard.

diff --git a/app/(public)/leaderboard/[slug]/page.tsx b/app/(public)/leaderboard/[slug]/page.tsx index 8f7394e..d903aec 100644 --- a/app/(public)/leaderboard/[slug]/page.tsx +++ b/app/(public)/leaderboard/[slug]/page.tsx @@ -4,6 +4,7 @@ import LeaderboardHeader from "@/app/components/leaderboard/Header"; import BackButton from "@/app/components/leaderboard/BackButton"; import Footer from "@/app/components/layout/Footer"; import CTA from "@/app/components/layout/CTA"; +import { Member } from "@/app/types/LeaderboardMember"; export default async function LeaderboardPage(props: { params: Promise<{ slug: string }>; @@ -28,7 +29,7 @@ export default async function LeaderboardPage(props: { ); } - const { data: members, error } = await supabase + const { data: members, error }: { data: Member[] | null; error: any } = await supabase .from("leaderboard_members_view") .select("*") .eq("leaderboard_id", leaderboard.id); diff --git a/app/components/LeaderboardTable.tsx b/app/components/LeaderboardTable.tsx index be57a2d..791706b 100644 --- a/app/components/LeaderboardTable.tsx +++ b/app/components/LeaderboardTable.tsx @@ -1,15 +1,7 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faClock, faCode, faTerminal, faServer, faBolt, faFire, faStar, faRocket } from "@fortawesome/free-solid-svg-icons"; +import { Member } from "@/app/types/LeaderboardMember"; -type Member = { - user_id: string; - role: string; - email: string; - total_seconds: number; - languages: { name: string }[] | null; - operating_systems: { name: string }[] | null; - editors: { name: string }[] | null; -}; function LeaderboardStats({ members }: { members: Member[] }) { const totalHours = Math.round( @@ -114,6 +106,7 @@ export default function LeaderboardTable({ .map((member, index) => ({ user_id: member.user_id, rank: index + 1, + name: member.name, email: member.email, hours: Math.round((member.total_seconds || 0) / 3600), role: member.role, @@ -200,7 +193,7 @@ export default function LeaderboardTable({ ) : (

{/* Header Row (Desktop) */} -
+
Rank
Developer
Tech Stack
@@ -219,16 +212,16 @@ export default function LeaderboardTable({
{/* Background Progress Bar */}
{isCurrentUser && ( -
+
)} {/* MOBILE TOP ROW / DESKTOP LEFT FLEX */} @@ -242,13 +235,13 @@ export default function LeaderboardTable({ {/* Profile + Badges */}
-
- {user.email.charAt(0)} +
+ {user.name ? user.name : user.email.charAt(0)}
-

- {user.email.split("@")[0]} +

+ {user.name ?? user.email.split("@")[0]}

{isCurrentUser && ( @@ -275,12 +268,12 @@ export default function LeaderboardTable({
{/* MOBILE BOTTOM STACK / DESKTOP RIGHT ROW */} -
+
{/* Tech Stack */}
{user.languages.length > 0 ? ( user.languages.map((lang, i) => ( - + {lang} )) @@ -292,15 +285,15 @@ export default function LeaderboardTable({ {/* Environment */}
{user.editor !== "N/A" && ( - + {user.editor} )} {user.editor !== "N/A" && user.os !== "N/A" && ( - + )} {user.os !== "N/A" && ( - + {user.os} )} diff --git a/app/components/leaderboard/Header.tsx b/app/components/leaderboard/Header.tsx index 56384ea..7738265 100644 --- a/app/components/leaderboard/Header.tsx +++ b/app/components/leaderboard/Header.tsx @@ -110,7 +110,7 @@ export default function LeaderboardHeader({ />