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