diff --git a/src/pages/criticisms/Add.tsx b/src/pages/criticisms/Add.tsx index a57353f..010310c 100644 --- a/src/pages/criticisms/Add.tsx +++ b/src/pages/criticisms/Add.tsx @@ -1,24 +1,23 @@ -import { type FC } from 'react' +import { useState, type FC } from 'react' import Input from '../../components/Input' import Textarea from '../../components/Textarea' import UploadBox from '../../components/UploadBox' import Button from '../../components/Button' import { TickCircle, TickSquare } from 'iconsax-react' -// import { useMultiUpload } from '../ticket/hooks/useTicketData' import { useFormik } from 'formik' import type { CreateCriticismsTypes } from './types/CriticismsTypes' import * as Yup from 'yup' import { toast } from '../../shared/toast' -// import type { ErrorType } from '../../helpers/types' -// import { useCreateCriticisms } from './hooks/useCriticismsData' +import type { ErrorType } from '../../helpers/types' +import { useCreateCriticisms } from './hooks/useCriticismsData' import { t } from '../../locale' +import { useMultiUpload } from '../uploader/hooks/useUploader' const AddCriticisms: FC = () => { - // const [files, setFiles] = useState([]) - // const [percent, setPercent] = useState(0) - // const multiUpload = useMultiUpload(setPercent) - // const createCriticisms = useCreateCriticisms() + const [files, setFiles] = useState([]) + const multiUpload = useMultiUpload() + const createCriticisms = useCreateCriticisms() const formik = useFormik({ initialValues: { @@ -31,41 +30,33 @@ const AddCriticisms: FC = () => { content: Yup.string().required(t('errors.required')), }), onSubmit: async (values: CreateCriticismsTypes) => { - // کامنت شده - بخش ارتباط با سرور - console.log('Form submitted:', values) - toast(t('success'), 'success') - formik.resetForm() - // if (files.length > 0) { - // const images = new FormData() - // files.forEach(file => { - // images.append('files', file) - // }) - // await multiUpload.mutateAsync(images, { - // onSuccess: async (data) => { - // values.files = await data.data.map((item: { url: string }) => item?.url) - // }, - // onError: (error: ErrorType) => { - // toast(error.response?.data?.error?.message[0], 'error') - // } - // }) + if (files.length > 0) { + await multiUpload.mutateAsync(files, { + onSuccess: async (data) => { + values.files = await data.data.map((item: { url: string }) => item?.url) + }, + onError: (error: ErrorType) => { + toast(error.response?.data?.error?.message[0], 'error') + } + }) - // } else { - // delete values.files - // } + } else { + delete values.files + } - // createCriticisms.mutate(values, { - // onSuccess: () => { - // toast(t('success'), 'success') - // formik.resetForm() - // setTimeout(() => { - // window.location.reload() - // }, 1000); - // }, - // onError: (error: ErrorType) => { - // toast(error.response?.data?.error?.message[0], 'error') - // } - // }) + createCriticisms.mutate(values, { + onSuccess: () => { + toast(t('success'), 'success') + formik.resetForm() + setTimeout(() => { + window.location.reload() + }, 1000); + }, + onError: (error: ErrorType) => { + toast(error.response?.data?.error?.message[0], 'error') + } + }) } }) @@ -107,7 +98,7 @@ const AddCriticisms: FC = () => { { }} + onChange={setFiles} /> @@ -116,8 +107,7 @@ const AddCriticisms: FC = () => {