File tree Expand file tree Collapse file tree 4 files changed +50
-3
lines changed Expand file tree Collapse file tree 4 files changed +50
-3
lines changed Original file line number Diff line number Diff line change 33 isQueryKey ,
44 parseFilterArgs ,
55 parseMutationArgs ,
6+ parseMutationFilterArgs ,
67 parseQueryArgs ,
78 updateState ,
89} from "../utils" ;
@@ -106,6 +107,23 @@ describe("utils", () => {
106107 } ) ;
107108 } ) ;
108109
110+ describe ( "parseMutationFilterArgs" , ( ) => {
111+ test ( "should default to empty filters" , ( ) => {
112+ const result = parseMutationFilterArgs ( undefined ) ;
113+
114+ expect ( result ) . toEqual ( undefined ) ;
115+ } ) ;
116+
117+ test ( "should merge mutation key with filters" , ( ) => {
118+ const filters = { fetching : true } ;
119+
120+ const result = parseMutationFilterArgs ( "key" , filters ) ;
121+ const expected = { ...filters , mutationKey : "key" } ;
122+
123+ expect ( result ) . toEqual ( expected ) ;
124+ } ) ;
125+ } ) ;
126+
109127 describe ( "updateState" , ( ) => {
110128 test ( "should update first object with values from the second one" , ( ) => {
111129 const origin = { option1 : "a" , option2 : "b" , option3 : "c" } ;
Original file line number Diff line number Diff line change @@ -9,7 +9,12 @@ export { useInfiniteQuery } from "./useInfiniteQuery";
99export { useMutation } from "./useMutation" ;
1010export { useIsFetching } from "./useIsFetching" ;
1111export { useIsMutating } from "./useIsMutating" ;
12- export { parseFilterArgs , parseMutationArgs , parseQueryArgs } from "./utils" ;
12+ export {
13+ parseFilterArgs ,
14+ parseMutationArgs ,
15+ parseQueryArgs ,
16+ parseMutationFilterArgs ,
17+ } from "./utils" ;
1318
1419export type { UseQueryOptions } from "./useQuery" ;
1520export type { UseInfiniteQueryOptions } from "./useInfiniteQuery" ;
Original file line number Diff line number Diff line change 11import { onUnmounted , Ref , ref } from "vue-demi" ;
2+ import type { QueryKey } from "react-query/types/core" ;
23import type { MutationFilters as MF } from "react-query/types/core/utils" ;
34
45import { useQueryClient } from "./useQueryClient" ;
6+ import { parseMutationFilterArgs } from "./utils" ;
57import type { WithQueryClientKey } from "./types" ;
68
79export type MutationFilters = WithQueryClientKey < MF > ;
810
9- export function useIsMutating ( filters ?: MutationFilters ) : Ref < number > {
11+ export function useIsMutating ( filters ?: MutationFilters ) : Ref < number > ;
12+ export function useIsMutating (
13+ queryKey ?: QueryKey ,
14+ filters ?: MutationFilters
15+ ) : Ref < number > ;
16+ export function useIsMutating (
17+ arg1 ?: QueryKey | MutationFilters ,
18+ arg2 ?: MutationFilters
19+ ) : Ref < number > {
20+ const filters = parseMutationFilterArgs ( arg1 , arg2 ) ;
1021 const queryClient = useQueryClient ( filters ?. queryClientKey ) ;
1122
1223 const isMutating = ref ( queryClient . isMutating ( filters ) ) ;
Original file line number Diff line number Diff line change @@ -7,7 +7,8 @@ import type {
77 QueryKey ,
88 QueryOptions ,
99} from "react-query/types/core" ;
10- import type { QueryFilters } from "react-query/types/core/utils" ;
10+ import { QueryFilters } from "./useIsFetching" ;
11+ import { MutationFilters } from "./useIsMutating" ;
1112
1213export function isQueryKey ( value : unknown ) : value is QueryKey {
1314 return typeof value === "string" || Array . isArray ( value ) ;
@@ -67,6 +68,18 @@ export function parseMutationArgs<
6768 return arg1 ;
6869}
6970
71+ export function parseMutationFilterArgs (
72+ arg1 ?: QueryKey | MutationFilters ,
73+ arg2 ?: MutationFilters
74+ ) : MutationFilters | undefined {
75+ if ( isQueryKey ( arg1 ) ) {
76+ return Object . assign ( arg2 , {
77+ mutationKey : arg1 ,
78+ } ) ;
79+ }
80+ return arg1 ;
81+ }
82+
7083export function updateState (
7184 state : Record < string , unknown > ,
7285 update : Record < string , any >
You can’t perform that action at this time.
0 commit comments