diff --git a/.changeset/cold-grapes-occur.md b/.changeset/cold-grapes-occur.md new file mode 100644 index 00000000..f0300af1 --- /dev/null +++ b/.changeset/cold-grapes-occur.md @@ -0,0 +1,5 @@ +--- +'@powersync/tanstack-react-query': minor +--- + +Changed how default query client is derived when not supplied as a function parameter. Fixes some cases where deriving the query client happens too early. diff --git a/packages/tanstack-react-query/src/hooks/useQuery.ts b/packages/tanstack-react-query/src/hooks/useQuery.ts index aa1034ed..45894af5 100644 --- a/packages/tanstack-react-query/src/hooks/useQuery.ts +++ b/packages/tanstack-react-query/src/hooks/useQuery.ts @@ -24,7 +24,7 @@ export function useQuery( export function useQuery( options: UseBaseQueryOptions>, - queryClient: Tanstack.QueryClient = Tanstack.useQueryClient() + queryClient?: Tanstack.QueryClient ) { return useQueryCore(options, queryClient, Tanstack.useQuery); } @@ -44,7 +44,7 @@ export function useSuspenseQuery( options: UseBaseQueryOptions>, - queryClient: Tanstack.QueryClient = Tanstack.useQueryClient() + queryClient?: Tanstack.QueryClient ) { return useQueryCore(options, queryClient, Tanstack.useSuspenseQuery); } @@ -56,14 +56,14 @@ function useQueryCore< TQueryResult extends Tanstack.UseQueryResult | Tanstack.UseSuspenseQueryResult >( options: UseBaseQueryOptions, - queryClient: Tanstack.QueryClient, + queryClient: Tanstack.QueryClient | undefined, useQueryFn: (options: TQueryOptions, queryClient?: Tanstack.QueryClient) => TQueryResult ): TQueryResult { const powerSync = usePowerSync(); - if (!powerSync) { throw new Error('PowerSync is not available'); } + const resolvedQueryClient = queryClient ?? Tanstack.useQueryClient(); let error: Error | undefined = undefined; @@ -106,7 +106,7 @@ function useQueryCore< const l = powerSync.registerListener({ schemaChanged: async () => { await fetchTables(); - queryClient.invalidateQueries({ queryKey: options.queryKey }); + resolvedQueryClient.invalidateQueries({ queryKey: options.queryKey }); } }); @@ -132,7 +132,7 @@ function useQueryCore< powerSync.onChangeWithCallback( { onChange: () => { - queryClient.invalidateQueries({ + resolvedQueryClient.invalidateQueries({ queryKey: options.queryKey }); }, @@ -146,13 +146,13 @@ function useQueryCore< } ); return () => abort.abort(); - }, [powerSync, queryClient, stringifiedKey, tables]); + }, [powerSync, resolvedQueryClient, stringifiedKey, tables]); return useQueryFn( { ...(resolvedOptions as TQueryOptions), queryFn: query ? queryFn : resolvedOptions.queryFn } as TQueryOptions, - queryClient + resolvedQueryClient ); }