"use client"; import { createContext, useContext, useState, 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(() => { try { return localStorage.getItem(TOKEN_KEY); } catch { return null; } }); // isLoaded is always true: lazy init above reads localStorage synchronously const [isLoaded] = useState(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; }