"use client"; /** * useSignedInPage — for a page that only makes sense signed in. * * Signed-out visitors get the sign-in modal over the page; dismissing it * takes them home. This is the same gate /notifications, /chats and /u/me * each wire up by hand. Returns the user (null until signed in) so the page * can hold its content back until then. */ import { useEffect } from "react"; import { useRouter } from "next/navigation"; import { useAuth } from "@/components/auth/auth-provider"; import { useAuthGate } from "@/components/auth/auth-gate"; export function useSignedInPage() { const { user, loading } = useAuth(); const { requireAuth } = useAuthGate(); const router = useRouter(); useEffect(() => { if (loading || user) return; let cancelled = false; (async () => { const ok = await requireAuth(); if (!ok && !cancelled) router.replace("/"); })(); return () => { cancelled = true; }; }, [loading, user, requireAuth, router]); return { user, loading }; }