import { useEffect, useState } from "react"; import type { User } from "@supabase/supabase-js"; import { supabase } from "@/integrations/supabase/client"; /** Current signed-in user; `ready` is false until the stored session has been checked. */ export function useAuth() { const [user, setUser] = useState(null); const [ready, setReady] = useState(false); useEffect(() => { const { data: sub } = supabase.auth.onAuthStateChange((_e, session) => { setUser(session?.user ?? null); setReady(true); }); supabase.auth.getUser().then(({ data }) => { setUser(data.user ?? null); setReady(true); }); return () => sub.subscription.unsubscribe(); }, []); return { user, ready }; } export function displayName(user: User | null) { const m = (user?.user_metadata ?? {}) as Record; const n = (m["full_name"] ?? m["name"] ?? user?.email?.split("@")[0] ?? "friend") as string; return n.split(" ")[0]!.slice(0, 40); }