import {useState, useEffect} from 'react' import {useRouter} from 'next/router' import useUser from 'lib/useUser' import fetchJson from 'lib/fetchJson' import {Layout} from 'components' const Verify = () => { const router = useRouter() const {user, mutateUser} = useUser({ redirectToLogin: true, redirectToApps: true, }) const [errorMsg, setErrorMsg] = useState('') const [sending, setSending] = useState(false) const [resent, setResent] = useState(false) const handleSendMail = async e => { e.preventDefault() setErrorMsg('') setSending(true) try { await fetch('/api/verify') setResent(true) } catch (error) { setErrorMsg('Could not send verification email') } finally { setSending(false) } } const handleKey = async e => { e.preventDefault() const key = e.currentTarget.key.value try { mutateUser( await fetchJson('/api/verify', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({_id: user._id, key}), }) ) } catch (err) { setErrorMsg('Could not verify user') } } return ( {!user ? (

Loading...

) : (

One last step missing

{`To start using Notes App type the verification code we sent to your email (${user.email}):`}

{ sending ? (

Sending...

) : ( resent ? (

Mail was successfully sent again, check your mailbox!

) : (

If you didn't get verification email  send it again.

) ) } {errorMsg &&

{errorMsg}

}
) }
) } export default Verify