import { ChangeEvent, useMemo } from "react"; import { useMutation } from "react-query"; import { useRegisterStore } from "../stores/useRegisterStore"; import { RegisterProps } from "~/types/auth"; import { registerUser } from "~/services/auth"; import TermCondition from "./TermCondition"; import FormCaptcha from "./FormCaptcha"; import { useRouter } from "next/router"; import { UseToastOptions, useToast } from "@chakra-ui/react"; import Link from "next/link"; interface FormProps { type: string; required: boolean; isBisnisRegist: boolean; } const Form: React.FC = ({ type, required, isBisnisRegist=false }) => { console.log("isBisnisRegist",isBisnisRegist) const { form, isCheckedTNC, isValidCaptcha, errors, updateForm, validate, } = useRegisterStore() const isFormValid = useMemo(() => Object.keys(errors).length === 0, [errors]) console.log("errors",errors) const router = useRouter() const toast = useToast() const handleInputChange = (event: ChangeEvent) => { const { name, value } = event.target; updateForm(name, value) // if(!isBisnisRegist){ updateForm('business_name','Iman') updateForm('companyType','iman') updateForm('email_partner','it@fixcomart.co.id') updateForm('industry','1') updateForm('nama_wajib_pajak','Iman') updateForm('npwp','958666666688888') updateForm('npwp_document','adsdad.pdf') updateForm('sppkp_document','fdddwedw.pdf') // } validate() } const mutation = useMutation({ mutationFn: (data: RegisterProps) => registerUser(data) }) const handleSubmit = async (e: ChangeEvent) => { e.preventDefault() const response = await mutation.mutateAsync(form) if (response?.register === true) { const urlParams = new URLSearchParams({ activation: 'otp', email: form.email, redirect: (router.query?.next || '/') as string }) router.push(`${router.route}?${urlParams}`) } const toastProps: UseToastOptions = { duration: 5000, isClosable: true } switch (response?.reason) { case 'EMAIL_USED': toast({ ...toastProps, title: 'Email sudah digunakan', status: 'warning' }) break; case 'NOT_ACTIVE': const activationUrl = `${router.route}?activation=email` toast({ ...toastProps, title: 'Akun belum aktif', description: <>Akun sudah terdaftar namun belum aktif. Klik untuk aktivasi akun, status: 'warning' }) break } } console.log(!isFormValid,!isCheckedTNC,mutation.isLoading,!isValidCaptcha) return (
{!!errors.name && {errors.name}}
{!!errors.email && {errors.email}}
{!!errors.password && {errors.password}}
{!!errors.phone && {errors.phone}}
{type==='individu' && ( <> )} ) } export default Form