diff --git a/src/pages/products/List.tsx b/src/pages/products/List.tsx index 602a200..9011469 100644 --- a/src/pages/products/List.tsx +++ b/src/pages/products/List.tsx @@ -1,5 +1,5 @@ import { type FC, useState } from 'react' -import { useDeleteProduct, useGetProducts } from './hooks/useProductData'; +import { useDeleteProduct, useDraftProduct, useGetProducts } from './hooks/useProductData'; import { type ProductListType } from './types/Types'; import { ProductStatus } from './enum/ProductEnum'; import PageLoading from '../../components/PageLoading'; @@ -8,6 +8,7 @@ import PaginationUi from '../../components/PaginationUi'; import StatusWithText from '../../components/StatusWithText'; import Td from '../../components/Td'; import TrashWithConfrim from '../../components/TrashWithConfrim'; +import ModalConfrim from '../../components/ModalConfrim'; import PageTitle from '../../components/PageTitle'; import { Edit } from 'iconsax-react'; import Button from '@/components/Button'; @@ -21,8 +22,12 @@ const List: FC = () => { const navigate = useNavigate(); const [currentPage, setCurrentPage] = useState(1); + const [isDraftConfirmOpen, setIsDraftConfirmOpen] = useState(false); + const [selectedProductId, setSelectedProductId] = useState(null); const { data: productsData, isLoading, error, refetch } = useGetProducts(currentPage); const deleteProductMutation = useDeleteProduct(); + const draftProductMutation = useDraftProduct(); + if (isLoading) { return (
@@ -140,6 +145,18 @@ const List: FC = () => {
+ { + product.status !== ProductStatus.Draft && ( +
) } diff --git a/src/pages/products/hooks/useProductData.ts b/src/pages/products/hooks/useProductData.ts index a156c65..ffd0e4b 100644 --- a/src/pages/products/hooks/useProductData.ts +++ b/src/pages/products/hooks/useProductData.ts @@ -135,4 +135,10 @@ export const useAnswerProductQuestion = () => { return useMutation({ mutationFn: api.answerProductQuestion, }); +}; + +export const useDraftProduct = () => { + return useMutation({ + mutationFn: api.draftProduct, + }); }; \ No newline at end of file diff --git a/src/pages/products/service/ProductService.ts b/src/pages/products/service/ProductService.ts index 68c8034..4d2e758 100644 --- a/src/pages/products/service/ProductService.ts +++ b/src/pages/products/service/ProductService.ts @@ -127,4 +127,9 @@ export const approveProductQuestion = async (id: string) => { export const answerProductQuestion = async (params: {id: string, answer: string}) => { const { data } = await axios.post(`/admin/products/questions/${params.id}/answer`, { content:params.answer }); return data; +}; + +export const draftProduct = async (id: string) => { + const { data } = await axios.post(`/admin/products/${id}/draft`); + return data; }; \ No newline at end of file