gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/services/api/delete-service.mutate.ts · v0.7.4
Source
1 d636f3f Dawsh 2y ago import { ServiceType, ServicesQueryFetchKey } from "@marzneshin/modules/services";
2 3b7feef Mrdn 2y ago import { useMutation } from "@tanstack/react-query";
3 d636f3f Dawsh 2y ago import { fetch, queryClient } from "@marzneshin/common/utils";
4 3b7feef Mrdn 2y ago import { toast } from "sonner";
5 3b7feef Mrdn 2y ago import i18n from "@marzneshin/features/i18n";
6 3b7feef Mrdn 2y ago
7 3b7feef Mrdn 2y ago export async function fetchDeleteService(service: ServiceType): Promise<ServiceType> {
8 3b7feef Mrdn 2y ago return fetch(`/services/${service.id}`, { method: 'delete' }).then((service) => {
9 3b7feef Mrdn 2y ago return service;
10 3b7feef Mrdn 2y ago });
11 3b7feef Mrdn 2y ago }
12 3b7feef Mrdn 2y ago
13 3b7feef Mrdn 2y ago const ServicesDeleteFetchKey = "services-delete-fetch-key";
14 3b7feef Mrdn 2y ago
15 3b7feef Mrdn 2y ago
16 3b7feef Mrdn 2y ago const handleError = (error: Error, value: ServiceType) => {
17 3b7feef Mrdn 2y ago toast.error(
18 3b7feef Mrdn 2y ago i18n.t('events.delete.error', { name: value.name }),
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 3b7feef Mrdn 2y ago const handleSuccess = (value: ServiceType) => {
25 3b7feef Mrdn 2y ago toast.success(
26 3b7feef Mrdn 2y ago i18n.t('events.delete.success.title', { name: value.name }),
27 3b7feef Mrdn 2y ago {
28 3b7feef Mrdn 2y ago description: i18n.t('events.delete.success.desc')
29 3b7feef Mrdn 2y ago })
30 3b7feef Mrdn 2y ago queryClient.invalidateQueries({ queryKey: [ServicesQueryFetchKey] })
31 3b7feef Mrdn 2y ago }
32 3b7feef Mrdn 2y ago
33 3b7feef Mrdn 2y ago export const useServicesDeletionMutation = () => {
34 3b7feef Mrdn 2y ago return useMutation({
35 3b7feef Mrdn 2y ago mutationKey: [ServicesDeleteFetchKey],
36 3b7feef Mrdn 2y ago mutationFn: fetchDeleteService,
37 3b7feef Mrdn 2y ago onError: handleError,
38 3b7feef Mrdn 2y ago onSuccess: handleSuccess,
39 3b7feef Mrdn 2y ago })
40 3b7feef Mrdn 2y ago }