import { FC, useState } from 'react' import { useTranslation } from 'react-i18next' import Input from '../../components/Input' import Td from '../../components/Td' import SwitchComponent from '../../components/Switch' import { TickCircle, Trash } from 'iconsax-react' import "quill/dist/quill.snow.css"; import Button from '../../components/Button' import { useCreateBlogCategory, useDeleteBlogCategory, useGetBlogCategories } from './hooks/useBlogData' import { BlogCategoryType, CreateBlogCategoryType } from './types/BlogTypes' import moment from 'moment-jalaali' import { useFormik } from 'formik' import * as Yup from 'yup' import Textarea from '../../components/Textarea' import UploadBoxDraggble from '../../components/UploadBoxDraggble' import { useSingleUpload } from '../service/hooks/useServiceData' import { toast } from '../../components/Toast'; import UpdateCategory from './components/UpdateCategory' import { usePermissions } from '../../hooks/usePermissions' const BlogCategory: FC = () => { const { t } = useTranslation('global') const getBlogCategories = useGetBlogCategories() const [file, setFile] = useState() const singleUpload = useSingleUpload() const createBlogCategory = useCreateBlogCategory() const deleteBlogCategory = useDeleteBlogCategory() const { canCreate, canUpdate, canDelete } = usePermissions() const formik = useFormik({ initialValues: { title: '', description: '', iconUrl: '', isActive: true }, validationSchema: Yup.object({ title: Yup.string().required(t('errors.required')), description: Yup.string().required(t('errors.required')), }), onSubmit: async (values) => { if (!file) { toast('فایل را انتخاب کنید', 'error') return } const formData = new FormData() formData.append('file', file) await singleUpload.mutateAsync(formData, { onSuccess: (data) => { values.iconUrl = data.data.url } }) createBlogCategory.mutateAsync(values, { onSuccess: () => { toast('دسته بندی با موفقیت ثبت شد', 'success') setFile(undefined) formik.resetForm() getBlogCategories.refetch() } }) } }) return (
{t('blog.blog_category')}
{ getBlogCategories.data?.data?.categories?.map((item: BlogCategoryType) => { return ( ) }) }
{ }} />
{canUpdate('blog_categories') && ( )} {canDelete('blog_categories') && ( { deleteBlogCategory.mutateAsync(item.id, { onSuccess: () => { toast('دسته بندی با موفقیت حذف شد', 'success') getBlogCategories.refetch() } }) }} /> )}
{canCreate('blog_categories') && (

{t('blog.add_category')}

{t('blog.category_status')}

{t('ads.deactive')}
formik.setFieldValue('isActive', value)} />