import { FC, ReactNode } from "react"; import { useRouter } from "next/router"; import useSWR from "swr"; // services import { UserService } from "services/user.service"; // ui import { Spinner } from "@plane/ui"; // fetch-keys import { CURRENT_USER } from "constants/fetch-keys"; export interface IUserAuthWrapper { children: ReactNode; } // services const userService = new UserService(); export const UserAuthWrapper: FC = (props) => { const { children } = props; // router const router = useRouter(); // fetching user information const { data: currentUser, error } = useSWR(CURRENT_USER, () => userService.currentUser()); if (!currentUser && !error) { return (
); } if (error) { const redirectTo = router.asPath; router.push(`/?next=${redirectTo}`); return null; } return <>{children}; };