/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */ import { useEffect, useState } from 'react' import { useNavigate } from 'react-router-dom' import { toast } from 'react-toastify' import { MapOverlayPage } from '#components/Templates/MapOverlayPage' import { useAuth } from './useAuth' /** * @category Auth */ export function SignupPage() { const [email, setEmail] = useState('') const [userName, setUserName] = useState('') const [password, setPassword] = useState('') const { register, loading } = useAuth() const navigate = useNavigate() // eslint-disable-next-line react-hooks/exhaustive-deps const onRegister = async () => { await toast.promise(register({ email, password }, userName), { success: { render({ data }) { void navigate('/') return `Hi ${data?.first_name ? data.first_name : 'Traveler'}` }, // other options icon: '✌️', }, error: { render({ data }) { return data as string }, autoClose: 10000, }, pending: 'creating new user ...', }) } useEffect(() => { const keyDownHandler = (event: KeyboardEvent) => { if (event.key === 'Enter') { event.preventDefault() // eslint-disable-next-line @typescript-eslint/no-floating-promises onRegister() } } document.addEventListener('keydown', keyDownHandler) return () => { document.removeEventListener('keydown', keyDownHandler) } }, [onRegister]) return (

Sign Up

{ setUserName(e.target.value) }} className='tw:input tw:input-bordered tw:w-full tw:max-w-xs' /> { setEmail(e.target.value) }} className='tw:input tw:input-bordered tw:w-full tw:max-w-xs' /> { setPassword(e.target.value) }} className='tw:input tw:input-bordered tw:w-full tw:max-w-xs' />
) }