| import { useEffect, useState } from 'react' |
| import { getActiveUser, getToken, isAuthenticated, onSessionChange, type ActiveUser } from '../auth/session' |
|
|
| interface SessionState { |
| authed: boolean |
| token: string | null |
| activeUser: ActiveUser | null |
| } |
|
|
| export function useSession(): SessionState { |
| const [state, setState] = useState<SessionState>(() => ({ |
| authed: isAuthenticated(), |
| token: getToken(), |
| activeUser: getActiveUser(), |
| })) |
| useEffect( |
| () => |
| onSessionChange(() => |
| setState({ authed: isAuthenticated(), token: getToken(), activeUser: getActiveUser() }), |
| ), |
| [], |
| ) |
| return state |
| } |
|
|