import { FC, useState } from 'react' import { useTranslation } from 'react-i18next' import SwitchComponent from '../../../components/Switch' import Input from '../../../components/Input' import Select from '../../../components/Select' import UploadBoxDraggble from '../../../components/UploadBoxDraggble' import Button from '../../../components/Button' import { TickCircle } from 'iconsax-react' import { useCreateServiceCategory, useGetCategoryParents, useSingleUpload } from '../hooks/useServiceData' import { CreateServiceCategoryType, ServiceCategoryType } from '../types/ServiceTypes' import * as Yup from 'yup' import { useFormik } from 'formik' import { toast } from 'react-toastify' 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: { title: '', isActive: true, parentId: '', order: '', }, validationSchema: Yup.object({ title: Yup.string().required(t('errors.required')), }), 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, parentId: values.parentId ? values.parentId : undefined, order: +values.order } createCategory.mutate(params, { onSuccess: () => { formik.resetForm() getCategory.refetch() toast.success(t('success')) }, onError: (error: ErrorType) => { toast.error(error?.response?.data?.error?.message[0]) } }) } }) return (
{t('service.add_category')}
{t('service.status_category')}
formik.setFieldValue('isActive', value)} />
{ getCategory.data &&