1- import React from 'react'
2-
31import { QueryKey } from '../core'
42import { notifyManager } from '../core/notifyManager'
53import { QueryObserver } from '../core/queryObserver'
64import { useQueryErrorResetBoundary } from './QueryErrorResetBoundary'
75import { useQueryClient } from './QueryClientProvider'
86import { UseBaseQueryOptions } from './types'
97import { shouldThrowError } from './utils'
8+ import { createSignal , createMemo , createEffect , onCleanup } from 'solid-js'
109
1110export function useBaseQuery <
1211 TQueryFnData ,
@@ -24,12 +23,12 @@ export function useBaseQuery<
2423 > ,
2524 Observer : typeof QueryObserver
2625) {
27- const mountedRef = React . useRef ( false )
28- const [ , forceUpdate ] = React . useState ( 0 )
26+ const [ mountedRef ] = createSignal ( false )
27+ const [ , forceUpdate ] = createSignal ( 0 )
2928
3029 const queryClient = useQueryClient ( )
3130 const errorResetBoundary = useQueryErrorResetBoundary ( )
32- const defaultedOptions = queryClient . defaultQueryObserverOptions ( options )
31+ const [ defaultedOptions ] = createSignal ( queryClient . defaultQueryObserverOptions ( options ) )
3332
3433 // Make sure results are optimistically set in fetching state before subscribing or updating options
3534 defaultedOptions . optimisticResults = true
@@ -74,7 +73,7 @@ export function useBaseQuery<
7473 }
7574 }
7675
77- const [ observer ] = React . useState (
76+ const [ observer ] = createSignal (
7877 ( ) =>
7978 new Observer < TQueryFnData , TError , TData , TQueryData , TQueryKey > (
8079 queryClient ,
@@ -84,7 +83,7 @@ export function useBaseQuery<
8483
8584 let result = observer . getOptimisticResult ( defaultedOptions )
8685
87- React . useEffect ( ( ) => {
86+ createEffect ( ( ) => {
8887 mountedRef . current = true
8988
9089 errorResetBoundary . clearReset ( )
@@ -100,18 +99,19 @@ export function useBaseQuery<
10099 // Update result to make sure we did not miss any query updates
101100 // between creating the observer and subscribing to it.
102101 observer . updateResult ( )
103-
104- return ( ) => {
102+ onCleanup ( ( ) => {
105103 mountedRef . current = false
106104 unsubscribe ( )
107- }
108- } , [ errorResetBoundary , observer ] )
105+ } )
106+ } )
107+
108+
109109
110- React . useEffect ( ( ) => {
110+ createEffect ( ( ) => {
111111 // Do not notify on updates because of changes in the options because
112112 // these changes should already be reflected in the optimistic result.
113- observer . setOptions ( defaultedOptions , { listeners : false } )
114- } , [ defaultedOptions , observer ] )
113+ observer . setOptions ( defaultedOptions ( ) , { listeners : false } )
114+ } )
115115
116116 // Handle suspense
117117 if ( defaultedOptions . suspense && result . isLoading ) {
0 commit comments