import { useRouter } from 'next/router'; import { FC } from 'react'; import api from '../lib/api'; import GateForm from './GateForm'; import handleAPIError from '../lib/handleAPIError'; import { Panel } from './Panels'; const GatePanel: FC = () => { const { query: { rt: returnTo }, } = useRouter(); return ( { setIsSubmitting(true); api .post( '/auth/login', { username, password }, { withCredentials: true }, ) .then(() => { const url = returnTo ? String(returnTo) : '/'; window.location.replace(url); }) .catch((error) => { const emsg = handleAPIError(error, { onResponseErrorAppend: () => ({ children: `Credentials mismatched.`, type: 'warning', }), }); setMessage(emsg); }) .finally(() => { setIsSubmitting(false); }); }} passphraseLabel="Passphrase" submitLabel="Login" /> ); }; export default GatePanel;