Delete of admins

This commit is contained in:
hamid zarghami
2026-02-08 15:27:24 +03:30
parent 695d498b65
commit 3a357d729e
3 changed files with 27 additions and 6 deletions
+10 -5
View File
@@ -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<number>(1);
const { data } = useGetAdmins(page);
const deleteAdminMutation = useDeleteAdmin();
return (
<div className="mt-5">
@@ -61,10 +63,13 @@ const AdminList: FC = () => {
return (
<div className="flex gap-2">
<Link to={`${Paths.admin.update}${item.id}`}>
<Button className="!w-8 !h-8 !p-0 !bg-blue-500">
<Edit size={16} color="white" />
</Button>
<Eye size={20} color="black" />
</Link>
<TrashWithConfrim
onDelete={() => deleteAdminMutation.mutate(item.id)}
isloading={deleteAdminMutation.isPending}
colorIcon="#ef4444"
/>
</div>
);
},
+12 -1
View File
@@ -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"] });
},
});
};
+5
View File
@@ -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;
};