import { LoadingOverlay } from "@mantine/core"; import { GetServerSidePropsContext } from "next"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; import SignInForm from "../../components/auth/SignInForm"; import Meta from "../../components/Meta"; import useUser from "../../hooks/user.hook"; import useTranslate from "../../hooks/useTranslate.hook"; const webroot = process.env.WEBROOT || ""; export function getServerSideProps(context: GetServerSidePropsContext) { return { props: { redirectPath: context.query.redirect ?? null }, }; } const SignIn = ({ redirectPath }: { redirectPath?: string }) => { const { refreshUser } = useUser(); const router = useRouter(); const t = useTranslate(); const [isLoading, setIsLoading] = useState(redirectPath ? true : false); // If the access token is expired, the middleware redirects to this page. // If the refresh token is still valid, the user will be redirected to the last page. useEffect(() => { refreshUser().then((user) => { if (user) { router.replace(redirectPath ?? webroot + "/upload"); } else { setIsLoading(false); } }); }, []); if (isLoading) return ; return ( <> ); }; export default SignIn;