import { Fragment, useEffect } from "react"; import { Disclosure, Menu, Transition } from "@headlessui/react"; import Link from "next/link"; import { useRouter } from "next/router"; import { signOut, useSession } from "next-auth/react"; import { NEXT_PUBLIC_WEBAPP_URL } from "@documenso/lib/constants"; import Navigation from "./navigation"; function useRedirectToLoginIfUnauthenticated() { const { data: session, status } = useSession(); const loading = status === "loading"; const router = useRouter(); useEffect(() => { if (!loading && !session) { router.replace({ pathname: "/login", query: { callbackUrl: `${NEXT_PUBLIC_WEBAPP_URL}/${location.pathname}${location.search}`, }, }); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [loading, session]); return { loading: loading && !session, session, }; } export default function Layout({ children }: any) { useRedirectToLoginIfUnauthenticated(); return ( <>
{children}
); }