import { Edit } from 'iconsax-react' import { FC, useEffect, useState } from 'react' import { useGetBlogCategoryDetail, useUpdateBlogCategory } from '../hooks/useBlogData' import DefaulModal from '../../../components/DefaulModal' import { useFormik } from 'formik' import { CreateBlogCategoryType } from '../types/BlogTypes' import Input from '../../../components/Input' import Textarea from '../../../components/Textarea' import UploadBox from '../../../components/UploadBox' import { useSingleUpload } from '../../service/hooks/useServiceData' import SwitchComponent from '../../../components/Switch' import Button from '../../../components/Button' import { toast } from 'react-toastify' import { ErrorType } from '../../../helpers/types' interface Props { id: string } const UpdateCategory: FC = ({ id }) => { const [isOpen, setIsOpen] = useState(false) const [file, setFile] = useState() const { data } = useGetBlogCategoryDetail(id, isOpen) const singleUpload = useSingleUpload() const updateBlogCategory = useUpdateBlogCategory() const formik = useFormik({ initialValues: { title: '', description: '', iconUrl: '', isActive: true }, onSubmit: async (values) => { if (file) { const formData = new FormData() formData.append('file', file) await singleUpload.mutateAsync(formData, { onSuccess: (data) => { values.iconUrl = data.data.url } }) } updateBlogCategory.mutateAsync({ id: id, params: values }, { onSuccess: () => { toast.success('دسته بندی با موفقیت ویرایش شد') setIsOpen(false) window.location.reload() }, onError: (error: ErrorType) => { toast.error(error.response?.data?.error.message[0]) } }) } }) useEffect(() => { if (data?.data?.category) { formik.setValues(data?.data?.category) } // eslint-disable-next-line react-hooks/exhaustive-deps }, [data]) return (
setIsOpen(true)} size={20} color='#888' /> setIsOpen(false)} isHeader title_header='ویرایش دسته بندی' >
setFile(file[0])} />