diff --git a/src/pages/product/List.tsx b/src/pages/product/List.tsx
index e71539b..c4228da 100644
--- a/src/pages/product/List.tsx
+++ b/src/pages/product/List.tsx
@@ -2,11 +2,12 @@ import Button from '@/components/Button'
import Filters from '@/components/Filters'
import Table from '@/components/Table'
import { AddSquare, Edit, More2 } from 'iconsax-react'
-import { type FC } from 'react'
-import { useDeleteProduct, useGetProducts } from './hooks/useProductData'
+import { type FC, useState } from 'react'
+import { useDeleteProduct, useDuplicateProduct, useGetProducts } from './hooks/useProductData'
import { Link } from 'react-router-dom'
import { Paths } from '@/config/Paths'
import TrashWithConfrim from '@/components/TrashWithConfrim'
+import CopyWithConfirm from '@/components/CopyWithConfirm'
import { toast } from 'react-toastify'
import { extractErrorMessage } from '@/config/func'
@@ -14,6 +15,23 @@ const ProductList: FC = () => {
const { data: products, refetch } = useGetProducts()
const { mutate: deleteProduct, isPending: isDeleting } = useDeleteProduct()
+ const { mutate: duplicateProduct, isPending: isDuplicating } = useDuplicateProduct()
+ const [duplicatingId, setDuplicatingId] = useState
(null)
+
+ const handleDuplicate = (id: string) => {
+ setDuplicatingId(id)
+ duplicateProduct(id, {
+ onSuccess: () => {
+ refetch()
+ toast.success('محصول با موفقیت کپی شد')
+ setDuplicatingId(null)
+ },
+ onError: (error) => {
+ toast.error(extractErrorMessage(error))
+ setDuplicatingId(null)
+ },
+ })
+ }
const handleDelete = (id: string) => {
deleteProduct(id, {
@@ -97,6 +115,10 @@ const ProductList: FC = () => {
render: (item) => {
return (
+
handleDuplicate(item.id)}
+ isloading={isDuplicating && duplicatingId === item.id}
+ />
diff --git a/src/pages/product/category/Create.tsx b/src/pages/product/category/Create.tsx
index d8298e5..3bb5914 100644
--- a/src/pages/product/category/Create.tsx
+++ b/src/pages/product/category/Create.tsx
@@ -12,9 +12,13 @@ import SwitchComponent from '@/components/Switch'
import { useSingleUpload } from '@/pages/uploader/hooks/useUploader'
import { toast } from 'react-toastify'
import { extractErrorMessage } from '@/config/func'
+import { useNavigate } from 'react-router-dom'
+import { Paths } from '@/config/Paths'
+import BackButton from '@/components/BackButton'
const ProductCategory: FC = () => {
+ const navigate = useNavigate()
const { data } = useGetCategory()
const { mutate, isPending } = useCreateCategory()
const { mutate: upload, isPending: isUploading } = useSingleUpload()
@@ -29,6 +33,7 @@ const ProductCategory: FC = () => {
mutate(values, {
onSuccess: () => {
toast.success('با موفقیت ذخیره شد')
+ navigate(Paths.product.category.list)
},
onError: (error) => {
toast.error(extractErrorMessage(error))
@@ -64,8 +69,10 @@ const ProductCategory: FC = () => {
return (
-
-
دسته جدید
+
+
+
دسته جدید
+