"use client"; import { useSession, signIn } from "next-auth/react"; import { useEffect, useRef } from "react"; import Spinner from "./Spinner"; export default function SessionGuard({ children }: { children: React.ReactNode }) { const { data: session, status } = useSession(); const triedSilent = useRef(false); useEffect(() => { if (status === "unauthenticated" && !triedSilent.current) { triedSilent.current = true; signIn("keycloak", undefined, { prompt: "none" }); } if ( session?.error === "RefreshTokenExpired" || session?.error === "RefreshAccessTokenError" ) { signIn("keycloak", undefined, { prompt: "none" }); } }, [status, session?.error]); if (status === "loading") { return } return <>{children}; }