From 5016b8e5bdb1dc9fca59877d4bfb4941c66d2ea5 Mon Sep 17 00:00:00 2001 From: David Arranz Date: Mon, 26 Aug 2024 18:26:46 +0200 Subject: [PATCH] . --- client/src/app/quotes/edit.tsx | 1 + client/src/app/quotes/hooks/useQuotes.tsx | 28 +++++++++++++++---- .../src/lib/hooks/useDataSource/useList.tsx | 18 ++++++------ 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/client/src/app/quotes/edit.tsx b/client/src/app/quotes/edit.tsx index 9c5197f..3e44ade 100644 --- a/client/src/app/quotes/edit.tsx +++ b/client/src/app/quotes/edit.tsx @@ -141,6 +141,7 @@ export const QuoteEdit = () => { }, //onSettled: () => {}, onSuccess: () => { + console.log("onsuccess 2"); reset(getValues()); toast.success("Cotización guardada"); if (shouldRedirect) { diff --git a/client/src/app/quotes/hooks/useQuotes.tsx b/client/src/app/quotes/hooks/useQuotes.tsx index 01a7870..e7a1c0c 100644 --- a/client/src/app/quotes/hooks/useQuotes.tsx +++ b/client/src/app/quotes/hooks/useQuotes.tsx @@ -14,6 +14,7 @@ import { IUpdateQuote_Response_DTO, UniqueID, } from "@shared/contexts"; +import { useMutation, useQueryClient } from "@tanstack/react-query"; import { useCallback, useState } from "react"; import slugify from "slugify"; @@ -96,8 +97,9 @@ export const useQuotes = () => { }); }, - useCreate: () => - useSave({ + useCreate: () => { + const queryClient = useQueryClient(); + return useSave({ //mutationKey: keys().data().resource("quotes").action("one").id("").params().get(), mutationFn: (data) => { const { date } = data; @@ -115,10 +117,18 @@ export const useQuotes = () => { }, }); }, - }), + onSuccess: () => { + queryClient.invalidateQueries({ + queryKey: ["data", "default", "quotes"], + }); + }, + }); + }, - useUpdate: (id: string) => - useSave({ + useUpdate: (id: string) => { + const queryClient = useQueryClient(); + + return useMutation({ mutationKey: keys().data().resource("quotes").action("one").id(id).params().get(), mutationFn: (data) => { const { date } = data; @@ -132,7 +142,13 @@ export const useQuotes = () => { }, }); }, - }), + onSuccess: () => { + queryClient.invalidateQueries({ + queryKey: ["data", "default", "quotes"], + }); + }, + }); + }, useOne: (id?: string, params?: UseQuotesGetParamsType) => useOne({ diff --git a/client/src/lib/hooks/useDataSource/useList.tsx b/client/src/lib/hooks/useDataSource/useList.tsx index a50906d..59c1525 100644 --- a/client/src/lib/hooks/useDataSource/useList.tsx +++ b/client/src/lib/hooks/useDataSource/useList.tsx @@ -27,10 +27,12 @@ export type UseListQueryOptions = { queryOptions?: Record; } & UseLoadingOvertimeOptionsProps; -export type UseListQueryResult = - UseQueryResult & { - isEmpty: boolean; - } & UseLoadingOvertimeReturnType; +export type UseListQueryResult = UseQueryResult< + TUseListQueryData, + TUseListQueryError +> & { + isEmpty: boolean; +} & UseLoadingOvertimeReturnType; export const useList = ({ queryKey, @@ -39,18 +41,18 @@ export const useList = ({ select, queryOptions = {}, overtimeOptions, -}: UseListQueryOptions< +}: UseListQueryOptions): UseListQueryResult< TUseListQueryData, TUseListQueryError ->): UseListQueryResult => { +> => { const [isEmpty, setIsEmpty] = useState(false); const queryResponse = useQuery({ queryKey, queryFn, placeholderData: keepPreviousData, - staleTime: DEFAULT_STALE_TIME, - refetchInterval: DEFAULT_REFETCH_INTERVAL, + //staleTime: DEFAULT_STALE_TIME, + //refetchInterval: DEFAULT_REFETCH_INTERVAL, refetchOnWindowFocus: true, enabled: enabled && !!queryFn, select,