diff --git a/src/pages/requests/RequestList.tsx b/src/pages/requests/RequestList.tsx
index 21890bb..54a52f8 100644
--- a/src/pages/requests/RequestList.tsx
+++ b/src/pages/requests/RequestList.tsx
@@ -1,15 +1,30 @@
import Filters from '@/components/Filters'
import Table from '@/components/Table'
+import TrashWithConfrim from '@/components/TrashWithConfrim'
+import { extractErrorMessage } from '@/config/func'
import { type FC } from 'react'
-import { useGetRequests } from './hooks/useRequestData'
+import { useDeleteRequest, useGetRequests } from './hooks/useRequestData'
import moment from 'moment-jalaali'
import { Link } from 'react-router-dom'
import { Paths } from '@/config/Paths'
import { Eye } from 'iconsax-react'
+import { toast } from 'react-toastify'
const RequestList: FC = () => {
const { data } = useGetRequests()
+ const { mutate: deleteRequest, isPending: isDeleting } = useDeleteRequest()
+
+ const handleDelete = (id: string) => {
+ deleteRequest(id, {
+ onSuccess: () => {
+ toast.success('درخواست با موفقیت حذف شد')
+ },
+ onError: (error) => {
+ toast.error(extractErrorMessage(error))
+ },
+ })
+ }
return (
@@ -107,7 +122,11 @@ const RequestList: FC = () => {
- {/* */}
+ handleDelete(item.id)}
+ isloading={isDeleting}
+ colorIcon='red'
+ />
)
}
diff --git a/src/pages/requests/hooks/useRequestData.ts b/src/pages/requests/hooks/useRequestData.ts
index 9292238..e589f5e 100644
--- a/src/pages/requests/hooks/useRequestData.ts
+++ b/src/pages/requests/hooks/useRequestData.ts
@@ -1,5 +1,5 @@
import * as api from "../service/RequestService";
-import { useQuery } from "@tanstack/react-query";
+import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
export const useGetRequests = () => {
return useQuery({
@@ -15,3 +15,14 @@ export const useGetRequestDetail = (id: string) => {
enabled: !!id,
});
};
+
+export const useDeleteRequest = () => {
+ const queryClient = useQueryClient();
+
+ return useMutation({
+ mutationFn: api.deleteRequest,
+ onSuccess: () => {
+ queryClient.invalidateQueries({ queryKey: ["requests"] });
+ },
+ });
+};
diff --git a/src/pages/requests/service/RequestService.ts b/src/pages/requests/service/RequestService.ts
index e36ef79..1381fc1 100644
--- a/src/pages/requests/service/RequestService.ts
+++ b/src/pages/requests/service/RequestService.ts
@@ -14,3 +14,8 @@ export const getRequestDetail = async (id: string) => {
await axios.get(`/admin/request/${id}`);
return data;
};
+
+export const deleteRequest = async (id: string) => {
+ const { data } = await axios.delete(`/admin/request/${id}`);
+ return data;
+};