Skip to content
File

Blob: src/client/hooks/use-session-rehydration.ts

typescript24 lines
1import { useEffect } from "react";
2import { refreshSession } from "@/client/lib/api";
3import { SESSION_MODES } from "@/client/lib/constants";
4import { useAuthStore } from "@/client/stores/auth-store";
5import { useOnline } from "./use-online";
6 
7/**
8 * When the user transitions from local-only back to online,
9 * attempt to restore a live server session.
10 *
11 * This hook does not perform background workspace refreshes after
12 * LOCAL_ONLY -> AUTHENTICATED.
13 */
14export function useSessionRehydration() {
15 const online = useOnline();
16 const sessionMode = useAuthStore((s) => s.sessionMode);
17 
18 useEffect(() => {
19 if (!online || sessionMode !== SESSION_MODES.LOCAL_ONLY) return;
20 
21 void refreshSession();
22 }, [online, sessionMode]);
23}