"use client"; import { authClient } from "@repo/auth/client"; import { sessionQueryKey, useSessionQuery } from "@saas/auth/lib/api"; import { useQueryClient } from "@tanstack/react-query"; import { type ReactNode, useEffect, useState } from "react"; import { SessionContext } from "../lib/session-context"; export function SessionProvider({ children, }: { children: ReactNode; }) { const queryClient = useQueryClient(); const { data: session } = useSessionQuery(); const [loaded, setLoaded] = useState(!!session); useEffect(() => { if (session && !loaded) { setLoaded(true); } }, [session]); return ( { const { data: newSession, error } = await authClient.getSession({ query: { disableCookieCache: true, }, }); if (error) { throw new Error( error.message || "Failed to fetch session", ); } queryClient.setQueryData(sessionQueryKey, () => newSession); }, }} > {children} ); }