gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/users/api/commands/update-user.command.ts · master
Source
1 3b7feef Mrdn 2y ago import { useMutation } from "@tanstack/react-query";
2 d636f3f Dawsh 2y ago import { fetch, queryClient } from "@marzneshin/common/utils";
3 3b7feef Mrdn 2y ago import { toast } from "sonner";
4 3b7feef Mrdn 2y ago import i18n from "@marzneshin/features/i18n";
5 857e289 Mrdn 2y ago import {
6 857e289 Mrdn 2y ago UsersQueryFetchKey,
7 857e289 Mrdn 2y ago UserMutationType
8 e6e6467 Dawsh 2y ago } from "@marzneshin/modules/users";
9 3b7feef Mrdn 2y ago
10 857e289 Mrdn 2y ago export async function updateUser(user: UserMutationType): Promise<UserMutationType> {
11 3b7feef Mrdn 2y ago return fetch(`/users/${user.username}`, { method: 'put', body: user }).then((user) => {
12 3b7feef Mrdn 2y ago return user;
13 3b7feef Mrdn 2y ago });
14 3b7feef Mrdn 2y ago }
15 3b7feef Mrdn 2y ago
16 857e289 Mrdn 2y ago const handleError = (error: Error, value: UserMutationType) => {
17 3b7feef Mrdn 2y ago toast.error(
18 3b7feef Mrdn 2y ago i18n.t('events.update.error', { name: value.username }),
19 3b7feef Mrdn 2y ago {
20 3b7feef Mrdn 2y ago description: error.message
21 3b7feef Mrdn 2y ago })
22 3b7feef Mrdn 2y ago }
23 3b7feef Mrdn 2y ago
24 857e289 Mrdn 2y ago const handleSuccess = (value: UserMutationType) => {
25 3b7feef Mrdn 2y ago toast.success(
26 3b7feef Mrdn 2y ago i18n.t('events.update.success.title', { name: value.username }),
27 3b7feef Mrdn 2y ago {
28 3b7feef Mrdn 2y ago description: i18n.t('events.update.success.desc')
29 3b7feef Mrdn 2y ago })
30 3b7feef Mrdn 2y ago queryClient.invalidateQueries({ queryKey: [UsersQueryFetchKey] })
31 3b7feef Mrdn 2y ago }
32 3b7feef Mrdn 2y ago
33 3b7feef Mrdn 2y ago
34 3b7feef Mrdn 2y ago const UsersUpdateFetchKey = "users";
35 3b7feef Mrdn 2y ago
36 3b7feef Mrdn 2y ago export const useUsersUpdateMutation = () => {
37 3b7feef Mrdn 2y ago return useMutation({
38 3b7feef Mrdn 2y ago mutationKey: [UsersUpdateFetchKey],
39 3b7feef Mrdn 2y ago mutationFn: updateUser,
40 3b7feef Mrdn 2y ago onError: handleError,
41 3b7feef Mrdn 2y ago onSuccess: handleSuccess,
42 3b7feef Mrdn 2y ago })
43 3b7feef Mrdn 2y ago }