del request

This commit is contained in:
2026-07-02 22:18:31 +03:30
parent 6f353567da
commit 98f3e5e5bd
3 changed files with 38 additions and 3 deletions
+21 -2
View File
@@ -1,15 +1,30 @@
import Filters from '@/components/Filters' import Filters from '@/components/Filters'
import Table from '@/components/Table' import Table from '@/components/Table'
import TrashWithConfrim from '@/components/TrashWithConfrim'
import { extractErrorMessage } from '@/config/func'
import { type FC } from 'react' import { type FC } from 'react'
import { useGetRequests } from './hooks/useRequestData' import { useDeleteRequest, useGetRequests } from './hooks/useRequestData'
import moment from 'moment-jalaali' import moment from 'moment-jalaali'
import { Link } from 'react-router-dom' import { Link } from 'react-router-dom'
import { Paths } from '@/config/Paths' import { Paths } from '@/config/Paths'
import { Eye } from 'iconsax-react' import { Eye } from 'iconsax-react'
import { toast } from 'react-toastify'
const RequestList: FC = () => { const RequestList: FC = () => {
const { data } = useGetRequests() 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 ( return (
<div className='mt-5'> <div className='mt-5'>
@@ -107,7 +122,11 @@ const RequestList: FC = () => {
<Eye size={20} color='#8C90A3' /> <Eye size={20} color='#8C90A3' />
</Link> </Link>
{/* <Setting2 size={20} color='#00B89F' /> */} <TrashWithConfrim
onDelete={() => handleDelete(item.id)}
isloading={isDeleting}
colorIcon='red'
/>
</div> </div>
) )
} }
+12 -1
View File
@@ -1,5 +1,5 @@
import * as api from "../service/RequestService"; import * as api from "../service/RequestService";
import { useQuery } from "@tanstack/react-query"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
export const useGetRequests = () => { export const useGetRequests = () => {
return useQuery({ return useQuery({
@@ -15,3 +15,14 @@ export const useGetRequestDetail = (id: string) => {
enabled: !!id, enabled: !!id,
}); });
}; };
export const useDeleteRequest = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: api.deleteRequest,
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ["requests"] });
},
});
};
@@ -14,3 +14,8 @@ export const getRequestDetail = async (id: string) => {
await axios.get<RequestDetailResponseType>(`/admin/request/${id}`); await axios.get<RequestDetailResponseType>(`/admin/request/${id}`);
return data; return data;
}; };
export const deleteRequest = async (id: string) => {
const { data } = await axios.delete(`/admin/request/${id}`);
return data;
};