"use client"; import React, { createContext, useContext, useState, useEffect, ReactNode } from "react"; interface SessionContextType { token: string | null; user: any | null; setToken: (token: string | null) => void; setUser: (user: any | null) => void; } const SessionContext = createContext(undefined); interface SessionProviderProps { children: ReactNode; } export function SessionProvider({ children }: SessionProviderProps) { const [token, setTokenState] = useState(null); const [user, setUserState] = useState(null); const setToken = (newToken: string | null) => { if (newToken) { localStorage.setItem("token", newToken); } else { localStorage.removeItem("token"); } setTokenState(newToken); }; const setUser = (newUser: any | null) => { if (newUser) { localStorage.setItem("user", JSON.stringify(newUser)); } else { localStorage.removeItem("user"); } setUserState(newUser); }; useEffect(() => { const storedToken = localStorage.getItem("token"); const storedUser = localStorage.getItem("user"); if (storedToken) { setTokenState(storedToken); } if (storedUser) { try { setUserState(JSON.parse(storedUser)); } catch (error) { console.error("Failed to parse stored user.", error); } } }, []); return {children}; }