gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/admins/api/update-admin.mutate.ts · v0.6.4
Source
1 4708fcb Dawsh 2y ago import { useMutation } from "@tanstack/react-query";
2 d636f3f Dawsh 2y ago import { fetch, queryClient } from "@marzneshin/common/utils";
3 4708fcb Dawsh 2y ago import { toast } from "sonner";
4 4708fcb Dawsh 2y ago import i18n from "@marzneshin/features/i18n";
5 4708fcb Dawsh 2y ago import {
6 4708fcb Dawsh 2y ago AdminsQueryFetchKey,
7 4708fcb Dawsh 2y ago AdminMutationType,
8 4708fcb Dawsh 2y ago AdminType
9 7738ec1 Mardin 2y ago } from "@marzneshin/modules/admins";
10 4708fcb Dawsh 2y ago
11 4708fcb Dawsh 2y ago export async function updateAdmin(admin: AdminMutationType): Promise<AdminType> {
12 4708fcb Dawsh 2y ago return fetch(`/admins/${admin.username}`, { method: 'put', body: admin }).then((admin) => {
13 4708fcb Dawsh 2y ago return admin;
14 4708fcb Dawsh 2y ago });
15 4708fcb Dawsh 2y ago }
16 4708fcb Dawsh 2y ago
17 4708fcb Dawsh 2y ago const handleError = (error: Error, value: AdminMutationType) => {
18 4708fcb Dawsh 2y ago toast.error(
19 4708fcb Dawsh 2y ago i18n.t('events.update.error', { name: value.username }),
20 4708fcb Dawsh 2y ago {
21 4708fcb Dawsh 2y ago description: error.message
22 4708fcb Dawsh 2y ago })
23 4708fcb Dawsh 2y ago }
24 4708fcb Dawsh 2y ago
25 4708fcb Dawsh 2y ago const handleSuccess = (value: AdminType) => {
26 4708fcb Dawsh 2y ago toast.success(
27 4708fcb Dawsh 2y ago i18n.t('events.update.success.title', { name: value.username }),
28 4708fcb Dawsh 2y ago {
29 4708fcb Dawsh 2y ago description: i18n.t('events.update.success.desc')
30 4708fcb Dawsh 2y ago })
31 4708fcb Dawsh 2y ago queryClient.invalidateQueries({ queryKey: [AdminsQueryFetchKey] })
32 4708fcb Dawsh 2y ago }
33 4708fcb Dawsh 2y ago
34 4708fcb Dawsh 2y ago
35 4708fcb Dawsh 2y ago const AdminsUpdateFetchKey = "admins";
36 4708fcb Dawsh 2y ago
37 4708fcb Dawsh 2y ago export const useAdminsUpdateMutation = () => {
38 4708fcb Dawsh 2y ago return useMutation({
39 4708fcb Dawsh 2y ago mutationKey: [AdminsUpdateFetchKey],
40 4708fcb Dawsh 2y ago mutationFn: updateAdmin,
41 4708fcb Dawsh 2y ago onError: handleError,
42 4708fcb Dawsh 2y ago onSuccess: handleSuccess,
43 4708fcb Dawsh 2y ago })
44 4708fcb Dawsh 2y ago }