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