gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/hosts/services/update-host.mutate.ts · v0.5.1
Source
1 42b5c17 Mardin 2y ago import { HostType } from "@marzneshin/features/hosts";
2 3b7feef Mrdn 2y ago import { useMutation } from "@tanstack/react-query";
3 3b7feef Mrdn 2y ago import { fetch, queryClient } from "@marzneshin/utils";
4 3b7feef Mrdn 2y ago import { toast } from "sonner";
5 3b7feef Mrdn 2y ago import i18n from "@marzneshin/features/i18n";
6 7428e12 Mrdn 2y ago import { HostUpdateRequestDto } from "./host-mutation.dto";
7 3b7feef Mrdn 2y ago
8 7428e12 Mrdn 2y ago export async function fetchHostsUpdateMutation({ hostId, host }: HostUpdateRequestDto): Promise<HostUpdateRequestDto> {
9 7428e12 Mrdn 2y ago return fetch(`/inbounds/hosts/${hostId}`,
10 7428e12 Mrdn 2y ago { method: 'put', body: host }).then((host: HostType) => ({ hostId, host }));
11 3b7feef Mrdn 2y ago }
12 3b7feef Mrdn 2y ago
13 7428e12 Mrdn 2y ago const handleError = (error: Error, value: HostUpdateRequestDto) => {
14 3b7feef Mrdn 2y ago toast.error(
15 7428e12 Mrdn 2y ago i18n.t('events.update.error', { name: value.host.remark }),
16 3b7feef Mrdn 2y ago {
17 3b7feef Mrdn 2y ago description: error.message
18 3b7feef Mrdn 2y ago })
19 3b7feef Mrdn 2y ago }
20 3b7feef Mrdn 2y ago
21 7428e12 Mrdn 2y ago const handleSuccess = (value: HostUpdateRequestDto) => {
22 3b7feef Mrdn 2y ago toast.success(
23 7428e12 Mrdn 2y ago i18n.t('events.update.success.title', { name: value.host.remark }),
24 3b7feef Mrdn 2y ago {
25 7428e12 Mrdn 2y ago description: i18n.t('events.update.success.desc')
26 3b7feef Mrdn 2y ago })
27 42b5c17 Mardin 2y ago queryClient.invalidateQueries({ queryKey: ["inbounds"] })
28 3b7feef Mrdn 2y ago }
29 3b7feef Mrdn 2y ago
30 3b7feef Mrdn 2y ago
31 3b7feef Mrdn 2y ago const HostsCreateFetchKey = "hosts";
32 3b7feef Mrdn 2y ago
33 3b7feef Mrdn 2y ago export const useHostsUpdateMutation = () => {
34 3b7feef Mrdn 2y ago return useMutation({
35 3b7feef Mrdn 2y ago mutationKey: [HostsCreateFetchKey],
36 3b7feef Mrdn 2y ago onError: handleError,
37 3b7feef Mrdn 2y ago onSuccess: handleSuccess,
38 3b7feef Mrdn 2y ago mutationFn: fetchHostsUpdateMutation,
39 3b7feef Mrdn 2y ago })
40 3b7feef Mrdn 2y ago }