1- import { useEffect , use , useState , useTransition } from 'react'
1+ import { useEffect , useEffectEvent , use , useState , useTransition } from 'react'
22import { type ContextValue } from 'query/react:context'
33import { type Options } from 'query:index'
44import { useQueryContext } from './useQueryContext'
@@ -74,7 +74,7 @@ export function useQueryBasic<T = unknown>(
7474 useQueryTransitionContext ( )
7575
7676 const [ isLocalPending , startLocalTransition ] = useTransition ( )
77- const { query, expiration , subscribe } = useQueryInstance ( options )
77+ const { query, subscribe } = useQueryInstance ( options )
7878 const ignoreTransitionContext = oIgnoreTransitionContext ?? cIgnoreTransitionContext ?? false
7979 const isPending = ignoreTransitionContext ? isLocalPending : ( isContextPending ?? isLocalPending )
8080
@@ -94,64 +94,64 @@ export function useQueryBasic<T = unknown>(
9494
9595 const [ data , setData ] = useState < T > ( use ( promise ) )
9696
97- useEffect (
98- function ( ) {
99- function onResolved ( event : CustomEventInit < T > ) {
100- startTransition ( function ( ) {
101- setData ( event . detail as T )
102- } )
103- }
97+ const onResolved = useEffectEvent ( function ( event : CustomEventInit < T > ) {
98+ startTransition ( function ( ) {
99+ setData ( event . detail as T )
100+ } )
101+ } )
104102
105- function onMutating ( event : CustomEventInit < Promise < T > > ) {
106- startTransition ( async function ( ) {
107- const value = await ( event . detail as Promise < T > )
103+ const onMutating = useEffectEvent ( function ( event : CustomEventInit < Promise < T > > ) {
104+ startTransition ( async function ( ) {
105+ const value = await ( event . detail as Promise < T > )
108106
109- startTransition ( function ( ) {
110- setData ( value )
111- } )
112- } )
113- }
107+ startTransition ( function ( ) {
108+ setData ( value )
109+ } )
110+ } )
111+ } )
114112
115- function onMutated ( event : CustomEventInit < T > ) {
116- startTransition ( function ( ) {
117- setData ( event . detail as T )
118- } )
119- }
113+ const onMutated = useEffectEvent ( function ( event : CustomEventInit < T > ) {
114+ startTransition ( function ( ) {
115+ setData ( event . detail as T )
116+ } )
117+ } )
120118
121- function onHydrated ( event : CustomEventInit < T > ) {
122- startTransition ( function ( ) {
123- setData ( event . detail as T )
124- } )
125- }
119+ const onHydrated = useEffectEvent ( function ( event : CustomEventInit < T > ) {
120+ startTransition ( function ( ) {
121+ setData ( event . detail as T )
122+ } )
123+ } )
126124
127- function onRefetching ( event : CustomEventInit < Promise < T > > ) {
128- startTransition ( async function ( ) {
129- const value = await ( event . detail as Promise < T > )
125+ const onRefetching = useEffectEvent ( function ( event : CustomEventInit < Promise < T > > ) {
126+ startTransition ( async function ( ) {
127+ const value = await ( event . detail as Promise < T > )
130128
131- startTransition ( function ( ) {
132- setData ( value )
133- } )
129+ startTransition ( function ( ) {
130+ setData ( value )
131+ } )
132+ } )
133+ } )
134+
135+ const onForgotten = useEffectEvent ( function ( ) {
136+ if ( clearOnForget ) {
137+ startTransition ( async function ( ) {
138+ const data = await query < T > ( key , {
139+ expiration : oExpiration ,
140+ fetcher : oFetcher ,
141+ stale : oStale ,
142+ removeOnError : oRemoveOnError ,
143+ fresh : oFresh ,
134144 } )
135- }
136145
137- function onForgotten ( ) {
138- if ( clearOnForget ) {
139- startTransition ( async function ( ) {
140- const data = await query < T > ( key , {
141- expiration : oExpiration ,
142- fetcher : oFetcher ,
143- stale : oStale ,
144- removeOnError : oRemoveOnError ,
145- fresh : oFresh ,
146- } )
147-
148- startTransition ( function ( ) {
149- setData ( data )
150- } )
151- } )
152- }
153- }
146+ startTransition ( function ( ) {
147+ setData ( data )
148+ } )
149+ } )
150+ }
151+ } )
154152
153+ useEffect (
154+ function ( ) {
155155 const unsubscribeResolved = subscribe ( key , 'resolved' , onResolved )
156156 const unsubscribeMutating = subscribe ( key , 'mutating' , onMutating )
157157 const unsubscribeMutated = subscribe ( key , 'mutated' , onMutated )
@@ -168,19 +168,7 @@ export function useQueryBasic<T = unknown>(
168168 unsubscribeForgotten ( )
169169 }
170170 } ,
171- [
172- query ,
173- expiration ,
174- subscribe ,
175- key ,
176- clearOnForget ,
177- oExpiration ,
178- oFetcher ,
179- oStale ,
180- oRemoveOnError ,
181- oFresh ,
182- startTransition ,
183- ]
171+ [ key , subscribe ]
184172 )
185173
186174 return { data, isPending }
0 commit comments