import React, { useState, createContext, useContext } from 'react'; import { User } from '@repo/shared-types'; const SESSION_KEY = 'edtech_admin_token'; const USER_KEY = 'edtech_admin_user'; interface AuthContextType { token: string | null; user: User | null; login: (token: string, user: User) => void; logout: () => void; } export const AuthContext = createContext({ token: null, user: null, login: () => {}, logout: () => {} }); export function AuthProvider({ children }: { children: React.ReactNode }) { const [token, setToken] = useState(() => sessionStorage.getItem(SESSION_KEY)); const [user, setUser] = useState(() => { const saved = sessionStorage.getItem(USER_KEY); return saved ? JSON.parse(saved) : null; }); const login = (t: string, u: User) => { sessionStorage.setItem(SESSION_KEY, t); sessionStorage.setItem(USER_KEY, JSON.stringify(u)); setToken(t); setUser(u); }; const logout = () => { sessionStorage.removeItem(SESSION_KEY); sessionStorage.removeItem(USER_KEY); setToken(null); setUser(null); }; return ( {children} ); } export const useAuth = () => useContext(AuthContext);