import { Edit, TickCircle } from 'iconsax-react' import { FC, useEffect, useState } from 'react' import DefaulModal from '../../../components/DefaulModal' import { useGetCategoryDetail, useGetCategoryParents, useSingleUpload, useUpdateCategory } from '../hooks/useServiceData' import Input from '../../../components/Input' import { CreateServiceCategoryType, ServiceCategoryType } from '../types/ServiceTypes' import * as Yup from 'yup' import { useFormik } from 'formik' import { toast } from 'react-toastify' import { useTranslation } from 'react-i18next' import { ErrorType } from '../../../helpers/types' import Select from '../../../components/Select' import UploadBox from '../../../components/UploadBox' import Button from '../../../components/Button' type Props = { id: string, refetch: () => void } const UpdateCategory: FC = (props) => { const { t } = useTranslation('global') const [showModal, setShowModal] = useState(false) const [file, setFile] = useState() const getCategoryDetail = useGetCategoryDetail(props.id, showModal) const singleUpload = useSingleUpload() const getCategory = useGetCategoryParents() const updateCategory = useUpdateCategory(props.id) const formik = useFormik({ initialValues: { title: '', isActive: true, parentId: '' }, validationSchema: Yup.object({ title: Yup.string().required(t('errors.required')), }), onSubmit: async (values) => { if (file) { const formData = new FormData() formData.append('file', file) await singleUpload.mutateAsync(formData, { onSuccess: (data) => { values.icon = data?.data?.url }, onError: (error: ErrorType) => { toast.error(error.response?.data?.error?.message[0]) } }) } const params = { ...values, parentId: values.parentId ? values.parentId : undefined } updateCategory.mutate(params, { onSuccess: () => { formik.resetForm() getCategory.refetch() toast.success(t('success')) setShowModal(false) props.refetch() }, onError: (error: ErrorType) => { toast.error(error?.response?.data?.error?.message[0]) } }) } }) useEffect(() => { if (getCategoryDetail.data) { const data = getCategoryDetail.data?.data?.category formik.setValues({ title: data?.title, parentId: data?.parentId, isActive: data?.isActive }) } // eslint-disable-next-line react-hooks/exhaustive-deps }, [getCategoryDetail.data]) return (
setShowModal(true)} size={20} color='#888888' /> setShowModal(false)} isHeader title_header='ویرایش دسته بندی' >
{ getCategory.data &&