amanpay / web /src /hooks /useSession.ts
MHamdan's picture
CI deploy 84761d0
de6cac5 verified
Raw
History Blame Contribute Delete
639 Bytes
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
}