import ErrorAlert from '@/components/ui/alerts/ErrorAlert'; import Button from '@/components/ui/forms/Button'; import FormError from '@/components/ui/forms/FormError'; import FormInfo from '@/components/ui/forms/FormInfo'; import FormLabel from '@/components/ui/forms/FormLabel'; import FormSegment from '@/components/ui/forms/FormSegment'; import FormTextInput from '@/components/ui/forms/FormTextInput'; import Layout from '@/components/ui/Layout'; import sendRegisterUserRequest from '@/requests/sendRegisterUserRequest'; import CreateUserValidationSchema from '@/services/User/schema/CreateUserValidationSchema'; import { zodResolver } from '@hookform/resolvers/zod'; import { NextPage } from 'next'; import { useRouter } from 'next/router'; import { useState } from 'react'; import { useForm } from 'react-hook-form'; import { FaUserCircle } from 'react-icons/fa'; import { z } from 'zod'; interface RegisterUserProps {} const RegisterUserPage: NextPage = () => { const router = useRouter(); const { reset, register, handleSubmit, formState } = useForm< z.infer >({ resolver: zodResolver(CreateUserValidationSchema), }); const { errors } = formState; const [serverResponseError, setServerResponseError] = useState(''); const onSubmit = async (data: z.infer) => { try { await sendRegisterUserRequest(data); reset(); router.push('/', undefined, { shallow: true }); } catch (error) { setServerResponseError( error instanceof Error ? error.message : 'Something went wrong. We could not register your account.', ); } }; return (

Register

{serverResponseError && ( )}
First name {errors.firstName?.message}
Last name {errors.lastName?.message}
username {errors.username?.message} email {errors.email?.message} password {errors.password?.message} confirm password {errors.confirmPassword?.message} Date of birth {errors.dateOfBirth?.message}
); }; export default RegisterUserPage;