"use client"; import { Coins } from "lucide-react"; import { useCallback, useEffect, useState } from "react"; import { HABIT_PET_DATA_UPDATED_EVENT } from "@/lib/app-events"; import { getCoins } from "@/lib/avatar-progression-storage"; import { createClient } from "@/lib/supabase/client"; export function HeaderCoinBalance() { const [coins, setCoins] = useState(null); const [isSignedIn, setIsSignedIn] = useState(false); const refresh = useCallback(async () => { const supabase = createClient(); const { data: { user }, } = await supabase.auth.getUser(); if (!user) { setIsSignedIn(false); setCoins(null); return; } setIsSignedIn(true); try { setCoins(await getCoins()); } catch { setCoins(0); } }, []); useEffect(() => { void refresh(); window.addEventListener(HABIT_PET_DATA_UPDATED_EVENT, refresh); return () => { window.removeEventListener(HABIT_PET_DATA_UPDATED_EVENT, refresh); }; }, [refresh]); if (!isSignedIn) { return null; } return (
); }