import { useFormik } from 'formik' import { FC, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import Input from '../../../components/Input' import Select from '../../../components/Select' import Textarea from '../../../components/Textarea' import Button from '../../../components/Button' import { InfoCircle, TickCircle } from 'iconsax-react' import { CreateRealUserType, ProvinesItemType } from '../types/FinancialTypes' import * as Yup from 'yup' import { useCreateRealUser, useGetCities, useGetFinancialInfo, useGetProvines } from '../hooks/useFinancialData' import { toast } from 'react-toastify' import { ErrorType } from '../../../helpers/types' const Personal: FC = () => { const { t } = useTranslation('global') const [isReadOnly, setIsReadOnly] = useState(false) const [provinesId, setProvinesId] = useState('') const getFinancialInfo = useGetFinancialInfo() const createRealUser = useCreateRealUser() const getProvines = useGetProvines() const getCities = useGetCities(provinesId) const formik = useFormik({ initialValues: { address: '', cityId: '', fatherName: '', gender: '', nationality: '', postalCode: '' }, validationSchema: Yup.object({ address: Yup.string().required(t('errors.required')), cityId: Yup.string().required(t('errors.required')), fatherName: Yup.string().required(t('errors.required')), gender: Yup.string().required(t('errors.required')), nationality: Yup.string().required(t('errors.required')), postalCode: Yup.string().required(t('errors.required')) }), onSubmit: values => { createRealUser.mutate(values, { onSuccess: () => { toast.success(t('success')) window.location.reload() }, onError(error: ErrorType) { toast.error(error.response?.data?.error.message[0]) }, }) } }) useEffect(() => { if (getFinancialInfo.data?.data?.user?.legalUser || getFinancialInfo.data?.data?.user?.realUser) { setIsReadOnly(true) } if (getFinancialInfo.data?.data?.user?.realUser) { const data = getFinancialInfo.data?.data?.user setIsReadOnly(true) formik.setValues({ address: data.address.address, cityId: data.address?.city?.cityId, fatherName: data?.realUser?.fatherName, gender: data?.realUser?.gender, nationality: data?.realUser?.nationality, postalCode: data?.address?.postalCode }) setProvinesId(data?.address?.city?.province?.id) } }, [getFinancialInfo.data]) return (
{t('financial.personal_information')}
{t('financial.enter_your_personal_information')}
{/*
*/}
{/*
*/}
{/* formik.setFieldValue('dateOfBirth', value)} placeholder={t('financial.date_of_birth')} error_text={formik.touched. && formik.errors.dateOfBirth ? formik.errors.dateOfBirth : ''} /> */}
{/*
*/}
{t('financial.address')}
{t('financial.enter_address')}
({ label: item.name, value: item.id })) : []} {...formik.getFieldProps('cityId')} error_text={formik.touched.cityId && formik.errors.cityId ? formik.errors.cityId : ''} readOnly={isReadOnly} />