From eae2ba0e7aa1db58362dd9d8bbb10ea540542fd4 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Mon, 9 Feb 2026 12:46:50 +0330 Subject: [PATCH] Category --- src/pages/food/Category.tsx | 9 +++++--- src/pages/food/components/CategoryForm.tsx | 22 +++++++++++++++++-- .../food/components/CategoryTableColumns.tsx | 9 ++++++++ src/pages/food/types/Types.ts | 2 ++ 4 files changed, 37 insertions(+), 5 deletions(-) diff --git a/src/pages/food/Category.tsx b/src/pages/food/Category.tsx index 7a9a39e..61b5cdc 100644 --- a/src/pages/food/Category.tsx +++ b/src/pages/food/Category.tsx @@ -20,7 +20,8 @@ import { extractErrorMessage } from '@/config/func' type CategoryFormValues = { title: string icon: File[] - order: number + order: number, + parentId?: string, } const CategoryFood: FC = () => { @@ -49,7 +50,8 @@ const CategoryFood: FC = () => { initialValues: { title: '', icon: [], - order: 0 + order: 0, + parentId: undefined, }, validationSchema: Yup.object().shape({ title: Yup.string().required('عنوان دسته‌بندی الزامی است') @@ -60,7 +62,8 @@ const CategoryFood: FC = () => { title: values.title, isActive, avatarUrl: avatarUrl || selectedIconUrl || editingCategory?.avatarUrl || '', - order: values.order + order: values.order, + parentId: values.parentId || undefined, } if (editingCategory) { diff --git a/src/pages/food/components/CategoryForm.tsx b/src/pages/food/components/CategoryForm.tsx index b80945f..08806c5 100644 --- a/src/pages/food/components/CategoryForm.tsx +++ b/src/pages/food/components/CategoryForm.tsx @@ -4,13 +4,15 @@ import Input from '@/components/Input' import SwitchComponent from '@/components/Switch' import Button from '@/components/Button' import type { FormikProps } from 'formik' -import { useGetIcons } from '../hooks/useFoodData' +import { useGetCategories, useGetIcons } from '../hooks/useFoodData' import IconSelectModal from './IconSelectModal' +import Select from '@/components/Select' type CategoryFormValues = { title: string icon: File[] - order: number + order: number, + parentId?: string, } type Props = { @@ -34,7 +36,9 @@ const CategoryForm: FC = ({ onIconUrlChange, selectedIconUrl }) => { + const { data: iconsData } = useGetIcons() + const { data: categories } = useGetCategories() const icons = iconsData?.data || [] const [isIconModalOpen, setIsIconModalOpen] = useState(false) @@ -67,6 +71,20 @@ const CategoryForm: FC = ({ /> +
+ { + return ( +
{item.parent?.title || '-'}
+ ) + } + }, { title: 'وضعیت', key: 'isActive', diff --git a/src/pages/food/types/Types.ts b/src/pages/food/types/Types.ts index 62a36ba..7225315 100644 --- a/src/pages/food/types/Types.ts +++ b/src/pages/food/types/Types.ts @@ -29,6 +29,7 @@ export type Category = { restId: string; avatarUrl: string; order: number | null; + parent?: Category; }; export type FoodDetailsCategory = { @@ -128,6 +129,7 @@ export type CreateCategoryType = { isActive: boolean; avatarUrl: string; order: number; + parentId?: string; }; export type Icon = {