diff --git a/docs/en/installation.md b/docs/en/installation.md index 16c2e49..033b291 100644 --- a/docs/en/installation.md +++ b/docs/en/installation.md @@ -34,7 +34,7 @@ function Page() { mutationFn: () => Promise.resolve(), optimisticUpdateOptions: { queryKey: ["todos"], - optimisticUpdatesFn: ({ prevQueryData, variables }: { prevQueryData: Todo[]; variables: Todo }) => { + getOptimisticState: ({ prevQueryData, variables }: { prevQueryData: Todo[]; variables: Todo }) => { return [...prevQueryData, variables]; }, invalidateQueryOnSuccess: true diff --git a/docs/en/react/useOptimisticMutation.md b/docs/en/react/useOptimisticMutation.md index d3d4df1..5a39393 100644 --- a/docs/en/react/useOptimisticMutation.md +++ b/docs/en/react/useOptimisticMutation.md @@ -21,7 +21,7 @@ const { mutationFn: addTodo, optimisticUpdateOptions: { queryKey: ["todos"], - optimisticUpdatesFn: ({ prevQueryData, variables }) => { + getOptimisticState: ({ prevQueryData, variables }) => { return [...prevQueryData, variables]; }, invalidateQueryOnSuccess: true @@ -43,7 +43,7 @@ This parameter extends the original UseMutationOptions. All original options are - Defaults to `false` - Whether to invalidate the query after a successful mutation - If set to `true`, the query will fetch if the data is stale. - - `optimisticUpdatesFn: { prevQueryData: TQueryData; variables: TVariables }) => TQueryData;` + - `getOptimisticState: { prevQueryData: TQueryData; variables: TVariables }) => TQueryData;` - This function returns the state for optimistic updates. ## queryClient diff --git a/src/react/__tests__/useOptimisticMutation.test.tsx b/src/react/__tests__/useOptimisticMutation.test.tsx index 591af49..b1593ea 100644 --- a/src/react/__tests__/useOptimisticMutation.test.tsx +++ b/src/react/__tests__/useOptimisticMutation.test.tsx @@ -36,7 +36,7 @@ describe("useOptimisticMutation", () => { mutationFn: () => Promise.resolve(), optimisticUpdateOptions: { queryKey: MOCK_QUERY_DATA.todo.queryKey, - optimisticUpdatesFn: ({ prevQueryData, variables }: { prevQueryData: Todo[]; variables: Todo }) => { + getOptimisticState: ({ prevQueryData, variables }: { prevQueryData: Todo[]; variables: Todo }) => { return [...prevQueryData, variables]; } } @@ -68,7 +68,7 @@ describe("useOptimisticMutation", () => { mutationFn: () => Promise.reject(), optimisticUpdateOptions: { queryKey: MOCK_QUERY_DATA.todo.queryKey, - optimisticUpdatesFn: ({ prevQueryData, variables }: { prevQueryData: Todo[]; variables: Todo }) => { + getOptimisticState: ({ prevQueryData, variables }: { prevQueryData: Todo[]; variables: Todo }) => { return [...prevQueryData, variables]; } } @@ -114,7 +114,7 @@ describe("useOptimisticMutation", () => { mutationFn: () => Promise.resolve(), optimisticUpdateOptions: { queryKey: MOCK_QUERY_DATA.todo.queryKey, - optimisticUpdatesFn: ({ prevQueryData, variables }: { prevQueryData: Todo[]; variables: Todo }) => { + getOptimisticState: ({ prevQueryData, variables }: { prevQueryData: Todo[]; variables: Todo }) => { return [...prevQueryData, variables]; }, invalidateQueryOnSuccess: true @@ -154,7 +154,7 @@ describe("useOptimisticMutation", () => { mutationFn: () => Promise.resolve(), optimisticUpdateOptions: { queryKey: MOCK_QUERY_DATA.todo.queryKey, - optimisticUpdatesFn: ({ prevQueryData, variables }: { prevQueryData: Todo[]; variables: Todo }) => { + getOptimisticState: ({ prevQueryData, variables }: { prevQueryData: Todo[]; variables: Todo }) => { return [...prevQueryData, variables]; }, invalidateQueryOnSuccess: () => { @@ -194,7 +194,7 @@ describe("useOptimisticMutation", () => { mutationFn: () => Promise.resolve(), optimisticUpdateOptions: { queryKey: MOCK_QUERY_DATA.todo.queryKey, - optimisticUpdatesFn: updateFnMock + getOptimisticState: updateFnMock } }); diff --git a/src/react/useOptimisticMutation/types.ts b/src/react/useOptimisticMutation/types.ts index fccaab8..649ade9 100644 --- a/src/react/useOptimisticMutation/types.ts +++ b/src/react/useOptimisticMutation/types.ts @@ -1,20 +1,9 @@ import { QueryKey } from "@tanstack/react-query"; export type OptimisticUpdateOptions = { - /** - * A query key for optimistic update - */ queryKey: QueryKey; - /** - * A function returns the resulting optimistic state. - */ - optimisticUpdatesFn: (param: { prevQueryData: TQueryData; variables: TVariables }) => TQueryData; - /** - * If set to `true`, the query will fetch if the data is stale. - * - * @default false - */ invalidateQueryOnSuccess?: boolean | (() => boolean); + getOptimisticState: (param: { prevQueryData: TQueryData; variables: TVariables }) => TQueryData; }; export type OptimisticUpdateContext = { diff --git a/src/react/useOptimisticMutation/useOptimisticMutation.ts b/src/react/useOptimisticMutation/useOptimisticMutation.ts index 4030fb8..1cd8bb3 100644 --- a/src/react/useOptimisticMutation/useOptimisticMutation.ts +++ b/src/react/useOptimisticMutation/useOptimisticMutation.ts @@ -20,7 +20,7 @@ export function useOptimisticMutation( @@ -35,7 +35,7 @@ export function useOptimisticMutation