import { useFormik } from 'formik' import { useEffect, type FC } from 'react' import type { CreateFieldType } from './types/Types' import { FieldTypeEnum } from './enum/Enum' import * as Yup from 'yup' import Button from '@/components/Button' import { AddSquare } from 'iconsax-react' import Input from '@/components/Input' import Select from '@/components/Select' import SwitchComponent from '@/components/Switch' import { useGetFieldDetail, useUpdateField } from './hooks/useFormBuilderData' import { useNavigate, useParams } from 'react-router-dom' import { toast } from 'react-toastify' import { extractErrorMessage } from '@/config/func' const FormBuilderUpdate: FC = () => { const { id } = useParams() const navigate = useNavigate() const { data, refetch } = useGetFieldDetail(Number(id)) const { mutate: createField, isPending } = useUpdateField() const formik = useFormik({ initialValues: { name: '', isRequired: true, order: 1, type: FieldTypeEnum.text, entityType: '', multiple: false }, validationSchema: Yup.object({ name: Yup.string().required('این فیلد اجباری می باشد') }), onSubmit: (values) => { createField({ id: Number(id), params: values }, { onSuccess: () => { toast.success('با موفقیت ذخیره شد') refetch() navigate(-1) }, onError: (error) => { toast.error(extractErrorMessage(error)) } }) } }) useEffect(() => { if (data) { formik.setValues({ isRequired: data?.data?.isRequired, name: data?.data?.name, order: data?.data?.order, type: data?.data?.type, entityType: data?.data?.entityType, multiple: data?.data?.multiple }) } // eslint-disable-next-line react-hooks/exhaustive-deps }, [data]) return (

ویرایش فیلد

formik.setFieldValue('isRequired', value)} label='اجباری' />
) } export default FormBuilderUpdate