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