service and category

This commit is contained in:
hamid zarghami
2025-02-28 20:15:50 +03:30
parent fd57ce6c91
commit cfd4284cd8
2 changed files with 23 additions and 6 deletions
@@ -1,4 +1,4 @@
import { FC } from 'react' import { FC, useState } from 'react'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import SwitchComponent from '../../../components/Switch' import SwitchComponent from '../../../components/Switch'
import Input from '../../../components/Input' import Input from '../../../components/Input'
@@ -6,7 +6,7 @@ import Select from '../../../components/Select'
import UploadBoxDraggble from '../../../components/UploadBoxDraggble' import UploadBoxDraggble from '../../../components/UploadBoxDraggble'
import Button from '../../../components/Button' import Button from '../../../components/Button'
import { TickCircle } from 'iconsax-react' 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 { CreateServiceCategoryType, ServiceCategoryType } from '../types/ServiceTypes'
import * as Yup from 'yup' import * as Yup from 'yup'
import { useFormik } from 'formik' import { useFormik } from 'formik'
@@ -16,8 +16,10 @@ import { ErrorType } from '../../../helpers/types'
const CreateCategory: FC = () => { const CreateCategory: FC = () => {
const { t } = useTranslation('global') const { t } = useTranslation('global')
const [file, setFile] = useState<File>()
const getCategory = useGetCategoryParents() const getCategory = useGetCategoryParents()
const createCategory = useCreateServiceCategory() const createCategory = useCreateServiceCategory()
const singleUpload = useSingleUpload()
const formik = useFormik<CreateServiceCategoryType>({ const formik = useFormik<CreateServiceCategoryType>({
initialValues: { initialValues: {
@@ -28,10 +30,25 @@ const CreateCategory: FC = () => {
validationSchema: Yup.object({ validationSchema: Yup.object({
title: Yup.string().required(t('errors.required')), 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 = { const params = {
...values, ...values,
icon: 'https://picsum.photos/200/300',
parentId: values.parentId ? values.parentId : undefined parentId: values.parentId ? values.parentId : undefined
} }
createCategory.mutate(params, { createCategory.mutate(params, {
@@ -97,7 +114,7 @@ const CreateCategory: FC = () => {
<div className='mt-6'> <div className='mt-6'>
<UploadBoxDraggble <UploadBoxDraggble
label={t('service.icon_serice_category')} label={t('service.icon_serice_category')}
onChange={() => null} onChange={(files) => setFile(files[0])}
/> />
</div> </div>
+1 -1
View File
@@ -27,7 +27,7 @@ export const getAllServicess = async (
} }
if (isDanakSuggest !== undefined) { if (isDanakSuggest !== undefined) {
query += `&isDanakSuggest=${isDanakSuggest}`; query += `&isDanakSuggest=${isDanakSuggest ? "1" : "0"}`;
} }
if (limit) { if (limit) {