import { useForm } from 'react-hook-form'; import Form from '@src/components/Form'; import Input from '@src/commons/styles/Input.ts'; import { isValidRegex, isValidString } from '@src/helpers/validators.ts'; import { REGEX } from '@src/constants/commons.ts'; import { INVALID_EMAIL, INVALID_STRING, PASSWORD_CONDITION, PASSWORD_NOT_MATCH, PASSWORD_NOT_MATCH_REQUIREMENT, REQUIRED_FIELD_ERROR, } from '@src/constants/formValidateMessage.ts'; import { useEffect } from 'react'; import toast from 'react-hot-toast'; import { useSignUpAccount } from '@src/hooks/authentication/useSignUpAccount.ts'; interface ISignUpAccountForm { email: string; fullName: string; password: string; confirmPassword: string; } const SignUpAccountForm = () => { const { createAccount, isCreating } = useSignUpAccount(); const { register, handleSubmit, formState: { errors }, getValues, reset, } = useForm(); useEffect(() => { if (errors?.password?.message) { toast.error(PASSWORD_CONDITION); } }, [errors?.password?.message]); const onSubmit = (data: ISignUpAccountForm) => { createAccount({ email: data.email, password: data.password }); reset(); }; return (
isValidRegex(REGEX.EMAIL, value) || INVALID_EMAIL, })} /> isValidString(value) || INVALID_STRING, })} /> isValidRegex(REGEX.PASSWORD, v) || PASSWORD_NOT_MATCH_REQUIREMENT, }, })} /> getValues().password === value || PASSWORD_NOT_MATCH, })} /> Create Account
); }; export default SignUpAccountForm;