import React, { useCallback, useState } from "react"; import { useRouter } from "next/router"; import Image from "next/image"; // hooks import useUser from "hooks/use-user"; import useToast from "hooks/use-toast"; // services import authenticationService from "services/authentication.service"; // layouts import DefaultLayout from "layouts/default-layout"; // social button import { GoogleLoginButton, GithubLoginButton, EmailSignInForm } from "components/account"; // ui import { Spinner } from "components/ui"; // icons import Logo from "public/logo-with-text.png"; // types import type { NextPage } from "next"; const { NEXT_PUBLIC_GITHUB_ID } = process.env; const SignInPage: NextPage = () => { // router const router = useRouter(); // user hook const { mutateUser } = useUser(); // states const [isLoading, setLoading] = useState(false); const { setToastAlert } = useToast(); const onSignInSuccess = useCallback(async () => { await mutateUser(); const nextLocation = router.asPath.split("?next=")[1]; if (nextLocation) router.push(nextLocation as string); else router.push("/"); }, [mutateUser, router]); const handleGoogleSignIn = ({ clientId, credential }: any) => { if (clientId && credential) { setLoading(true); authenticationService .socialAuth({ medium: "google", credential, clientId, }) .then(async () => { await onSignInSuccess(); }) .catch((err) => { console.log(err); setToastAlert({ title: "Error signing in!", type: "error", message: "Something went wrong. Please try again later or contact the support team.", }); setLoading(false); }); } }; const handleGithubSignIn = (githubToken: string) => { setLoading(true); authenticationService .socialAuth({ medium: "github", credential: githubToken, clientId: NEXT_PUBLIC_GITHUB_ID, }) .then(async () => { await onSignInSuccess(); }) .catch((err) => { console.log(err); setToastAlert({ title: "Error signing in!", type: "error", message: "Something went wrong. Please try again later or contact the support team.", }); setLoading(false); }); }; return ( {isLoading && (

Signing in. Please wait...

)}
Plane Web Logo

Sign in to your account

); }; export default SignInPage;