https://dev.kronoz.win/r/marzneshin.git
1import { useMutation } from "@tanstack/react-query";
2import { fetch, queryClient } from "@marzneshin/common/utils";
3import { toast } from "sonner";
4import i18n from "@marzneshin/features/i18n";
5import { AdminType } from "../types";
6
7interface AdminUsersStatusEnableQuery {
8 admin: AdminType;
9}
10
11export async function adminUsersStatusEnable({ admin }: AdminUsersStatusEnableQuery): Promise<AdminType> {
12 return fetch(`/admins/${admin.username}/enable_users`, { method: 'post' }).then((admin) => {
13 return admin;
14 });
15}
16
17const handleError = (error: Error, value: AdminUsersStatusEnableQuery) => {
18 toast.error(
19 i18n.t('events.user_status.error', { name: value.admin.username }),
20 {
21 description: error.message
22 })
23}
24
25const handleSuccess = (value: AdminType) => {
26 toast.success(
27 i18n.t('events.user_status.success.title', { name: value.username }),
28 {
29 description: i18n.t('events.user_status.success.desc')
30 })
31 queryClient.invalidateQueries({ queryKey: [UsersStatusEnabledFetchKey] })
32 queryClient.invalidateQueries({ queryKey: [UsersStatusEnabledFetchKey, value.username] })
33}
34
35
36const UsersStatusEnabledFetchKey = "admins";
37
38export const useAdminUsersStatusEnable = () => {
39 return useMutation({
40 mutationKey: [UsersStatusEnabledFetchKey],
41 mutationFn: adminUsersStatusEnable,
42 onError: handleError,
43 onSuccess: handleSuccess,
44 })
45}