diff --git a/web/app/dashboard/page.tsx b/web/app/dashboard/page.tsx
index b62b858..2a73ff8 100644
--- a/web/app/dashboard/page.tsx
+++ b/web/app/dashboard/page.tsx
@@ -1,96 +1,149 @@
-import { redirect } from 'next/navigation'
-import { createClient } from '@/lib/supabase-server'
+import { redirect } from "next/navigation";
+import Link from "next/link";
+import { Star, GitBranch, ExternalLink } from "lucide-react";
+import { createClient } from "@/lib/supabase-server";
type RepoRow = {
- repo_owner: string
- repo_name: string
- is_public: boolean
+ repo_owner: string;
+ repo_name: string;
+ is_public: boolean;
city_state: {
- description: string | null
- html_url: string
- default_branch: string
- updated_at: string
- language: string | null
- stargazers_count: number
- } | null
- last_synced_at: string | null
-}
+ description: string | null;
+ html_url: string;
+ default_branch: string;
+ updated_at: string;
+ language: string | null;
+ stargazers_count: number;
+ } | null;
+ last_synced_at: string | null;
+};
export default async function DashboardPage() {
- const supabase = await createClient()
+ const supabase = await createClient();
const {
- data: { session },
- } = await supabase.auth.getSession()
+ data: { user },
+ } = await supabase.auth.getUser();
- if (!session) {
- redirect('/')
+ if (!user) {
+ redirect("/");
}
const { data, error } = await supabase
- .from('linked_repos')
- .select('repo_owner, repo_name, is_public, city_state, last_synced_at')
- .eq('user_id', session.user.id)
- .order('last_synced_at', { ascending: false })
+ .from("linked_repos")
+ .select("repo_owner, repo_name, is_public, city_state, last_synced_at")
+ .eq("user_id", user.id)
+ .order("last_synced_at", { ascending: false });
- const repos = (data ?? []) as RepoRow[]
+ const repos = (data ?? []) as RepoRow[];
+ const username =
+ (user.user_metadata?.user_name as string | undefined) ??
+ (user.user_metadata?.preferred_username as string | undefined) ??
+ user.email ??
+ "";
return (
-