()
| 32 | } |
| 33 | |
| 34 | export default function useSession() { |
| 35 | const { data: session, isLoading } = useSWR( |
| 36 | sessionApiRoute, |
| 37 | fetchJson<SessionData>, |
| 38 | { |
| 39 | fallbackData: defaultSession, |
| 40 | }, |
| 41 | ) |
| 42 | |
| 43 | const { trigger: login } = useSWRMutation(sessionApiRoute, doLogin, { |
| 44 | // the login route already provides the updated information, no need to revalidate |
| 45 | revalidate: false, |
| 46 | }) |
| 47 | const { trigger: logout } = useSWRMutation(sessionApiRoute, doLogout) |
| 48 | |
| 49 | return { session, logout, login, isLoading } |
| 50 | } |