'use client'; import { useEffect, useState } from 'react'; import type { User } from '@supabase/supabase-js'; import Link from 'next/link'; import { useTranslations } from 'next-intl'; import { Button } from '@/components/ui/button'; import { isSupabaseConfigured, supabase } from '@/lib/supabase'; export function AuthNav() { const t = useTranslations('RootLayout'); const [user, setUser] = useState(null); const [loading, setLoading] = useState(isSupabaseConfigured); useEffect(() => { if (!isSupabaseConfigured) { setLoading(false); return; } let active = true; void supabase.auth.getUser().then(({ data }) => { if (active) { setUser(data.user); setLoading(false); } }); const { data: { subscription }, } = supabase.auth.onAuthStateChange((_event, session) => { setUser(session?.user ?? null); setLoading(false); }); return () => { active = false; subscription.unsubscribe(); }; }, []); if (loading) { return
; } if (user) { return ( <> {user.user_metadata?.full_name || user.email} ); } return ( <> {t('sign_in_link')} ); }