import React, { useState, useEffect } from "react"; import { NextPage } from "next"; import Head from "next/head"; import { useRouter } from "next/router"; import styled from "styled-components"; import { generateToken, setTokenCookie, isAuthenticated } from "@utils/auth"; import AdminPageWrapper from "@views/common/AdminPageWrapper"; const Main = styled.div` input { display: block; } `; const DEFAULT_REDIRECT = "/admin"; const AdminLoginPage: NextPage = () => { const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [error, setError] = useState(""); const router = useRouter(); const next = router.query.next as string || DEFAULT_REDIRECT; useEffect(() => { isAuthenticated().then((res) => { if (res) { router.push(next); } }); }, [router, next]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); try { const token = await generateToken(username, password); setTokenCookie(token); router.push(next); } catch (err) { setError("Failed to log in!"); } }; return ( <>

Log in to SIK Admin

{next && next !== DEFAULT_REDIRECT && (
You have to log in first.
)}
{error && (
{error}
)}
); }; export default AdminLoginPage;