gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/services/api/update-service.mutate.ts · v0.7.3
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 3b7feef Mrdn 2y ago import { ServicesQueryFetchKey } from "./services.query";
6 857e289 Mrdn 2y ago import { ServiceMutationType } from "../types";
7 3b7feef Mrdn 2y ago
8 857e289 Mrdn 2y ago
9 7738ec1 Mardin 2y ago export async function updateService(service: ServiceMutationType): Promise<ServiceMutationType> {
10 7738ec1 Mardin 2y ago return fetch(`/services/${service.id}`, { method: 'put', body: service }).then((service) => {
11 3b7feef Mrdn 2y ago return service;
12 3b7feef Mrdn 2y ago });
13 3b7feef Mrdn 2y ago }
14 3b7feef Mrdn 2y ago
15 857e289 Mrdn 2y ago const handleError = (error: Error, value: ServiceMutationType) => {
16 3b7feef Mrdn 2y ago toast.error(
17 3b7feef Mrdn 2y ago i18n.t('events.update.error', { name: value.name }),
18 3b7feef Mrdn 2y ago {
19 3b7feef Mrdn 2y ago description: error.message
20 3b7feef Mrdn 2y ago })
21 3b7feef Mrdn 2y ago }
22 3b7feef Mrdn 2y ago
23 857e289 Mrdn 2y ago const handleSuccess = (value: ServiceMutationType) => {
24 3b7feef Mrdn 2y ago toast.success(
25 3b7feef Mrdn 2y ago i18n.t('events.update.success.title', { name: value.name }),
26 3b7feef Mrdn 2y ago {
27 3b7feef Mrdn 2y ago description: i18n.t('events.update.success.desc')
28 3b7feef Mrdn 2y ago })
29 3b7feef Mrdn 2y ago queryClient.invalidateQueries({ queryKey: [ServicesQueryFetchKey] })
30 3b7feef Mrdn 2y ago }
31 3b7feef Mrdn 2y ago
32 3b7feef Mrdn 2y ago
33 3b7feef Mrdn 2y ago const ServicesUpdateFetchKey = "services-create-fetch-key";
34 3b7feef Mrdn 2y ago
35 3b7feef Mrdn 2y ago export const useServicesUpdateMutation = () => {
36 3b7feef Mrdn 2y ago return useMutation({
37 3b7feef Mrdn 2y ago mutationKey: [ServicesUpdateFetchKey],
38 3b7feef Mrdn 2y ago mutationFn: updateService,
39 3b7feef Mrdn 2y ago onError: handleError,
40 3b7feef Mrdn 2y ago onSuccess: handleSuccess,
41 3b7feef Mrdn 2y ago })
42 3b7feef Mrdn 2y ago }