From 3a357d729ea115f604dc276ab7b0b347911cae06 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Sun, 8 Feb 2026 15:27:24 +0330 Subject: [PATCH] Delete of admins --- src/pages/admin/List.tsx | 15 ++++++++++----- src/pages/admin/hooks/useAdminData.ts | 13 ++++++++++++- src/pages/admin/service/AdminService.ts | 5 +++++ 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/pages/admin/List.tsx b/src/pages/admin/List.tsx index e7cd2ee..5c1e81f 100644 --- a/src/pages/admin/List.tsx +++ b/src/pages/admin/List.tsx @@ -1,15 +1,17 @@ import { useState, type FC } from "react"; -import { useGetAdmins } from "./hooks/useAdminData"; +import { useGetAdmins, useDeleteAdmin } from "./hooks/useAdminData"; import Table from "@/components/Table"; import moment from "moment-jalaali"; import { Link } from "react-router-dom"; import { Paths } from "@/config/Paths"; import Button from "@/components/Button"; -import { AddSquare, Edit } from "iconsax-react"; +import { AddSquare, Eye } from "iconsax-react"; +import TrashWithConfrim from "@/components/TrashWithConfrim"; const AdminList: FC = () => { const [page, setPage] = useState(1); const { data } = useGetAdmins(page); + const deleteAdminMutation = useDeleteAdmin(); return (
@@ -61,10 +63,13 @@ const AdminList: FC = () => { return (
- + + deleteAdminMutation.mutate(item.id)} + isloading={deleteAdminMutation.isPending} + colorIcon="#ef4444" + />
); }, diff --git a/src/pages/admin/hooks/useAdminData.ts b/src/pages/admin/hooks/useAdminData.ts index 64ae506..a201844 100644 --- a/src/pages/admin/hooks/useAdminData.ts +++ b/src/pages/admin/hooks/useAdminData.ts @@ -1,5 +1,5 @@ import * as api from "../service/AdminService"; -import { useMutation, useQuery } from "@tanstack/react-query"; +import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import type { CreateAdminType } from "../types/Types"; export const useGetAdmins = (page: number) => { @@ -41,3 +41,14 @@ export const useGetRoles = () => { queryFn: api.getRoles, }); }; + +export const useDeleteAdmin = () => { + const queryClient = useQueryClient(); + + return useMutation({ + mutationFn: api.deleteAdmin, + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: ["admins"] }); + }, + }); +}; diff --git a/src/pages/admin/service/AdminService.ts b/src/pages/admin/service/AdminService.ts index 024ff87..9511bb3 100644 --- a/src/pages/admin/service/AdminService.ts +++ b/src/pages/admin/service/AdminService.ts @@ -34,3 +34,8 @@ export const updateAdmin = async (adminId: string, params: CreateAdminType) => { const { data } = await axios.patch(`/admin/admins/${adminId}`, params); return data; }; + +export const deleteAdmin = async (adminId: string) => { + const { data } = await axios.delete(`/admin/admins/${adminId}`); + return data; +};