Skip to content

Commit b19ad1f

Browse files
authored
fix(devtools): only subscribe to the queryCache while the devtools are open (TanStack#2045)
this will stop unnecessary and sometimes costly updates while they are closed
1 parent bd0d4de commit b19ad1f

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

src/devtools/devtools.tsx

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ export function ReactQueryDevtools({
216216
transform: `translateY(15px) scale(1.02)`,
217217
}),
218218
}}
219+
isOpen={isResolvedOpen}
219220
setIsOpen={setIsOpen}
220221
handleDragStart={e => handleDragStart(panelRef.current, e)}
221222
/>
@@ -322,7 +323,7 @@ export const ReactQueryDevtoolsPanel = React.forwardRef(
322323
props: DevtoolsPanelOptions,
323324
ref
324325
): React.ReactElement {
325-
const { setIsOpen, handleDragStart, ...panelProps } = props
326+
const { isOpen, setIsOpen, handleDragStart, ...panelProps } = props
326327

327328
const queryClient = useQueryClient()
328329
const queryCache = queryClient.getQueryCache()
@@ -388,10 +389,13 @@ export const ReactQueryDevtoolsPanel = React.forwardRef(
388389
).length
389390

390391
React.useEffect(() => {
391-
return queryCache.subscribe(() => {
392-
setUnsortedQueries(Object.values(queryCache.getAll()))
393-
})
394-
}, [sort, sortFn, sortDesc, setUnsortedQueries, queryCache])
392+
if (isOpen) {
393+
return queryCache.subscribe(() => {
394+
setUnsortedQueries(Object.values(queryCache.getAll()))
395+
})
396+
}
397+
return undefined
398+
}, [isOpen, sort, sortFn, sortDesc, setUnsortedQueries, queryCache])
395399

396400
return (
397401
<ThemeProvider theme={theme}>
@@ -407,16 +411,16 @@ export const ReactQueryDevtoolsPanel = React.forwardRef(
407411
.ReactQueryDevtoolsPanel * {
408412
scrollbar-color: ${theme.backgroundAlt} ${theme.gray};
409413
}
410-
414+
411415
.ReactQueryDevtoolsPanel *::-webkit-scrollbar, .ReactQueryDevtoolsPanel scrollbar {
412416
width: 1rem;
413417
height: 1rem;
414418
}
415-
419+
416420
.ReactQueryDevtoolsPanel *::-webkit-scrollbar-track, .ReactQueryDevtoolsPanel scrollbar-track {
417421
background: ${theme.backgroundAlt};
418422
}
419-
423+
420424
.ReactQueryDevtoolsPanel *::-webkit-scrollbar-thumb, .ReactQueryDevtoolsPanel scrollbar-thumb {
421425
background: ${theme.gray};
422426
border-radius: .5rem;

0 commit comments

Comments
 (0)