Delete of admins
This commit is contained in:
@@ -1,15 +1,17 @@
|
|||||||
import { useState, type FC } from "react";
|
import { useState, type FC } from "react";
|
||||||
import { useGetAdmins } from "./hooks/useAdminData";
|
import { useGetAdmins, useDeleteAdmin } from "./hooks/useAdminData";
|
||||||
import Table from "@/components/Table";
|
import Table from "@/components/Table";
|
||||||
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 Button from "@/components/Button";
|
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 AdminList: FC = () => {
|
||||||
const [page, setPage] = useState<number>(1);
|
const [page, setPage] = useState<number>(1);
|
||||||
const { data } = useGetAdmins(page);
|
const { data } = useGetAdmins(page);
|
||||||
|
const deleteAdminMutation = useDeleteAdmin();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="mt-5">
|
<div className="mt-5">
|
||||||
@@ -61,10 +63,13 @@ const AdminList: FC = () => {
|
|||||||
return (
|
return (
|
||||||
<div className="flex gap-2">
|
<div className="flex gap-2">
|
||||||
<Link to={`${Paths.admin.update}${item.id}`}>
|
<Link to={`${Paths.admin.update}${item.id}`}>
|
||||||
<Button className="!w-8 !h-8 !p-0 !bg-blue-500">
|
<Eye size={20} color="black" />
|
||||||
<Edit size={16} color="white" />
|
|
||||||
</Button>
|
|
||||||
</Link>
|
</Link>
|
||||||
|
<TrashWithConfrim
|
||||||
|
onDelete={() => deleteAdminMutation.mutate(item.id)}
|
||||||
|
isloading={deleteAdminMutation.isPending}
|
||||||
|
colorIcon="#ef4444"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import * as api from "../service/AdminService";
|
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";
|
import type { CreateAdminType } from "../types/Types";
|
||||||
|
|
||||||
export const useGetAdmins = (page: number) => {
|
export const useGetAdmins = (page: number) => {
|
||||||
@@ -41,3 +41,14 @@ export const useGetRoles = () => {
|
|||||||
queryFn: api.getRoles,
|
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);
|
const { data } = await axios.patch(`/admin/admins/${adminId}`, params);
|
||||||
return data;
|
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