diff --git a/packages/react-query-devtools/src/devtools.tsx b/packages/react-query-devtools/src/devtools.tsx index e0ee47ff74..31a467eca5 100644 --- a/packages/react-query-devtools/src/devtools.tsx +++ b/packages/react-query-devtools/src/devtools.tsx @@ -377,12 +377,18 @@ export function ReactQueryDevtools({ const useSubscribeToQueryCache = ( queryCache: QueryCache, getSnapshot: () => T, + skip: boolean = false, ): T => { return useSyncExternalStore( React.useCallback( - (onStoreChange) => - queryCache.subscribe(notifyManager.batchCalls(onStoreChange)), - [queryCache], + (onStoreChange) => { + if (!skip) + return queryCache.subscribe(notifyManager.batchCalls(onStoreChange)) + return () => { + return + } + }, + [queryCache, skip], ), getSnapshot, getSnapshot, @@ -422,6 +428,7 @@ export const ReactQueryDevtoolsPanel = React.forwardRef< const queriesCount = useSubscribeToQueryCache( queryCache, () => queryCache.getAll().length, + !isOpen, ) const [activeQueryHash, setActiveQueryHash] = useLocalStorage( @@ -501,188 +508,199 @@ export const ReactQueryDevtoolsPanel = React.forwardRef< }} onMouseDown={handleDragStart} > -
+ + {isOpen && (
-
- +
- setFilter(e.target.value)} - onKeyDown={(e) => { - if (e.key === 'Escape') setFilter('') - }} + +
- {!filter ? ( - <> - - - - - ) : null} + title={ + isMockOffline + ? 'Restore offline mock' + : 'Mock offline behavior' + } + style={{ + padding: '0', + height: '2em', + }} + > + + {isMockOffline ? ( + <> + + + + + + + + ) : ( + <> + + + + + + + )} + + + + + ) : null} +
+
+ {queries.map((query) => { + return ( + + ) + })} +
-
- {queries.map((query) => { - return ( - - ) - })} -
-
+ )} - {activeQueryHash ? ( + {activeQueryHash && isOpen ? (