// ============================================================================== // Author: Simon-Pierre Boucher // File: account.tsx // Desc: Contexte de compte membre (« Se connecter avec KA » — hub Groupe KA) : // profil de session, comme le account.tsx de Lou·Ka. Les favoris ♥ // vivent au hub Groupe KA (« Mon univers Ka ») — voir favorites.tsx. // ============================================================================== import { createContext, useCallback, useContext, useEffect, useMemo, useState, } from "react"; import { Me, fetchMe } from "./api"; interface AccountCtx { me: Me | null; refresh: () => void; } const Ctx = createContext({ me: null, refresh: () => {} }); export const useAccount = () => useContext(Ctx); export function AccountProvider({ children }: { children: React.ReactNode }) { const [me, setMe] = useState(null); const refresh = useCallback(() => { fetchMe().then((m) => setMe(m)); }, []); useEffect(() => { refresh(); }, [refresh]); const value = useMemo(() => ({ me, refresh }), [me, refresh]); return {children}; }