From cfd4284cd8cfe3c8fffcf5fe9babd5ab83f8cc11 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Fri, 28 Feb 2025 20:15:50 +0330 Subject: [PATCH] service and category --- .../service/components/CreateCategory.tsx | 27 +++++++++++++++---- src/pages/service/service/ServiceService.ts | 2 +- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/pages/service/components/CreateCategory.tsx b/src/pages/service/components/CreateCategory.tsx index 6c38449..748089e 100644 --- a/src/pages/service/components/CreateCategory.tsx +++ b/src/pages/service/components/CreateCategory.tsx @@ -1,4 +1,4 @@ -import { FC } from 'react' +import { FC, useState } from 'react' import { useTranslation } from 'react-i18next' import SwitchComponent from '../../../components/Switch' import Input from '../../../components/Input' @@ -6,7 +6,7 @@ import Select from '../../../components/Select' import UploadBoxDraggble from '../../../components/UploadBoxDraggble' import Button from '../../../components/Button' import { TickCircle } from 'iconsax-react' -import { useCreateServiceCategory, useGetCategoryParents } from '../hooks/useServiceData' +import { useCreateServiceCategory, useGetCategoryParents, useSingleUpload } from '../hooks/useServiceData' import { CreateServiceCategoryType, ServiceCategoryType } from '../types/ServiceTypes' import * as Yup from 'yup' import { useFormik } from 'formik' @@ -16,8 +16,10 @@ import { ErrorType } from '../../../helpers/types' const CreateCategory: FC = () => { const { t } = useTranslation('global') + const [file, setFile] = useState() const getCategory = useGetCategoryParents() const createCategory = useCreateServiceCategory() + const singleUpload = useSingleUpload() const formik = useFormik({ initialValues: { @@ -28,10 +30,25 @@ const CreateCategory: FC = () => { validationSchema: Yup.object({ title: Yup.string().required(t('errors.required')), }), - onSubmit: (values) => { + onSubmit: async (values) => { + if (!file) { + toast.error(t('errors.upload_image')) + return + } + + 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, - icon: 'https://picsum.photos/200/300', parentId: values.parentId ? values.parentId : undefined } createCategory.mutate(params, { @@ -97,7 +114,7 @@ const CreateCategory: FC = () => {
null} + onChange={(files) => setFile(files[0])} />
diff --git a/src/pages/service/service/ServiceService.ts b/src/pages/service/service/ServiceService.ts index c126fca..234e63a 100644 --- a/src/pages/service/service/ServiceService.ts +++ b/src/pages/service/service/ServiceService.ts @@ -27,7 +27,7 @@ export const getAllServicess = async ( } if (isDanakSuggest !== undefined) { - query += `&isDanakSuggest=${isDanakSuggest}`; + query += `&isDanakSuggest=${isDanakSuggest ? "1" : "0"}`; } if (limit) {