import { useState, useEffect } from 'react'; import { useNavigate } from 'react-router-dom'; import { useForm } from 'react-hook-form'; import { useRegisterUserMutation, TRegisterUser, useGetStartupConfig } from '~/data-provider'; function Registration() { const navigate = useNavigate(); const { data: startupConfig } = useGetStartupConfig(); const { register, watch, handleSubmit, formState: { errors } } = useForm({ mode: 'onChange' }); const [error, setError] = useState(false); const [errorMessage, setErrorMessage] = useState(''); const registerUser = useRegisterUserMutation(); const password = watch('password'); const onRegisterUserFormSubmit = (data: TRegisterUser) => { registerUser.mutate(data, { onSuccess: () => { navigate('/chat/new'); }, onError: (error) => { setError(true); if (error.response?.data?.message) { setErrorMessage(error.response?.data?.message); } } }); }; useEffect(() => { if (startupConfig?.registrationEnabled === false) { navigate('/login'); } }, [startupConfig, navigate]); return (

Create your account

{error && (
There was an error attempting to register your account. Please try again. {errorMessage}
)}
onRegisterUserFormSubmit(data))} >
{errors.name && ( {/* @ts-ignore not sure why*/} {errors.name.message} )}
{errors.username && ( {/* @ts-ignore not sure why */} {errors.username.message} )}
{errors.email && ( {/* @ts-ignore - Type 'string | FieldError | Merge> | undefined' is not assignable to type 'ReactNode' */} {errors.email.message} )}
{errors.password && ( {/* @ts-ignore not sure why */} {errors.password.message} )}
{ // e.preventDefault(); // return false; // }} {...register('confirm_password', { validate: (value) => value === password || 'Passwords do not match' })} aria-invalid={!!errors.confirm_password} className="peer block w-full appearance-none rounded-t-md border-0 border-b-2 border-gray-300 bg-gray-50 px-2.5 pb-2.5 pt-5 text-sm text-gray-900 focus:border-green-500 focus:outline-none focus:ring-0" placeholder=" " >
{errors.confirm_password && ( {/* @ts-ignore not sure why */} {errors.confirm_password.message} )}

{' '} Already have an account?{' '} Login

{startupConfig?.googleLoginEnabled && ( <>
Or
)} {startupConfig?.openidLoginEnabled && ( <>
Or
)}
); } export default Registration;