Delete of admins
This commit is contained in:
@@ -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>
|
||||
);
|
||||
},
|
||||
|
||||
@@ -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"] });
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user