"use client"; import { createContext, useContext, useState, useEffect, type ReactNode, } from "react"; const TOKEN_KEY = "k-tv-token"; interface AuthContextValue { token: string | null; /** True once the initial localStorage read has completed */ isLoaded: boolean; setToken: (token: string | null) => void; } const AuthContext = createContext(null); export function AuthProvider({ children }: { children: ReactNode }) { const [token, setTokenState] = useState(null); const [isLoaded, setIsLoaded] = useState(false); useEffect(() => { const stored = localStorage.getItem(TOKEN_KEY); if (stored) setTokenState(stored); setIsLoaded(true); }, []); const setToken = (t: string | null) => { setTokenState(t); if (t) { localStorage.setItem(TOKEN_KEY, t); } else { localStorage.removeItem(TOKEN_KEY); } }; return ( {children} ); } export function useAuthContext() { const ctx = useContext(AuthContext); if (!ctx) throw new Error("useAuthContext must be used within AuthProvider"); return ctx; }