@tanstack/react-query-devtools 5.0.0-alpha.2 → 5.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/CachePanel/ActiveQuery.d.ts +18 -0
- package/build/lib/CachePanel/ActiveQuery.esm.js +271 -0
- package/build/lib/CachePanel/ActiveQuery.esm.js.map +1 -0
- package/build/lib/CachePanel/ActiveQuery.js +275 -0
- package/build/lib/CachePanel/ActiveQuery.js.map +1 -0
- package/build/lib/CachePanel/ActiveQuery.mjs +257 -0
- package/build/lib/CachePanel/ActiveQuery.mjs.map +1 -0
- package/build/lib/CachePanel/CachePanel.d.ts +57 -0
- package/build/lib/CachePanel/CachePanel.esm.js +310 -0
- package/build/lib/CachePanel/CachePanel.esm.js.map +1 -0
- package/build/lib/CachePanel/CachePanel.js +315 -0
- package/build/lib/CachePanel/CachePanel.js.map +1 -0
- package/build/lib/CachePanel/CachePanel.mjs +310 -0
- package/build/lib/CachePanel/CachePanel.mjs.map +1 -0
- package/build/lib/CachePanel/Header/QueryStatusCount.d.ts +7 -0
- package/build/lib/CachePanel/Header/QueryStatusCount.esm.js +49 -0
- package/build/lib/CachePanel/Header/QueryStatusCount.esm.js.map +1 -0
- package/build/lib/CachePanel/Header/QueryStatusCount.js +53 -0
- package/build/lib/CachePanel/Header/QueryStatusCount.js.map +1 -0
- package/build/lib/CachePanel/Header/QueryStatusCount.mjs +49 -0
- package/build/lib/CachePanel/Header/QueryStatusCount.mjs.map +1 -0
- package/build/lib/CachePanel/QueryRow.d.ts +13 -0
- package/build/lib/CachePanel/QueryRow.esm.js +98 -0
- package/build/lib/CachePanel/QueryRow.esm.js.map +1 -0
- package/build/lib/CachePanel/QueryRow.js +102 -0
- package/build/lib/CachePanel/QueryRow.js.map +1 -0
- package/build/lib/CachePanel/QueryRow.mjs +82 -0
- package/build/lib/CachePanel/QueryRow.mjs.map +1 -0
- package/build/lib/Explorer.esm.js +2 -1
- package/build/lib/Explorer.esm.js.map +1 -1
- package/build/lib/Explorer.js +2 -1
- package/build/lib/Explorer.js.map +1 -1
- package/build/lib/Explorer.mjs +1 -0
- package/build/lib/Explorer.mjs.map +1 -1
- package/build/lib/devtools.d.ts +5 -48
- package/build/lib/devtools.esm.js +11 -550
- package/build/lib/devtools.esm.js.map +1 -1
- package/build/lib/devtools.js +12 -551
- package/build/lib/devtools.js.map +1 -1
- package/build/lib/devtools.mjs +7 -547
- package/build/lib/devtools.mjs.map +1 -1
- package/build/lib/index.esm.js +3 -1
- package/build/lib/index.esm.js.map +1 -1
- package/build/lib/index.js +3 -1
- package/build/lib/index.js.map +1 -1
- package/build/lib/index.mjs +3 -1
- package/build/lib/index.mjs.map +1 -1
- package/build/lib/index.prod.esm.js +821 -651
- package/build/lib/index.prod.esm.js.map +1 -1
- package/build/lib/index.prod.js +819 -650
- package/build/lib/index.prod.js.map +1 -1
- package/build/lib/index.prod.mjs +764 -625
- package/build/lib/index.prod.mjs.map +1 -1
- package/build/lib/styledComponents.d.ts +0 -1
- package/build/lib/styledComponents.esm.js +11 -1
- package/build/lib/styledComponents.esm.js.map +1 -1
- package/build/lib/styledComponents.js +11 -1
- package/build/lib/styledComponents.js.map +1 -1
- package/build/lib/styledComponents.mjs +11 -1
- package/build/lib/styledComponents.mjs.map +1 -1
- package/build/lib/theme.esm.js +1 -0
- package/build/lib/theme.esm.js.map +1 -1
- package/build/lib/theme.js +1 -0
- package/build/lib/theme.js.map +1 -1
- package/build/lib/theme.mjs +1 -0
- package/build/lib/theme.mjs.map +1 -1
- package/build/lib/types.d.ts +11 -0
- package/build/lib/useSubscribeToQueryCache.d.ts +3 -0
- package/build/lib/useSubscribeToQueryCache.esm.js +15 -0
- package/build/lib/useSubscribeToQueryCache.esm.js.map +1 -0
- package/build/lib/useSubscribeToQueryCache.js +19 -0
- package/build/lib/useSubscribeToQueryCache.js.map +1 -0
- package/build/lib/useSubscribeToQueryCache.mjs +15 -0
- package/build/lib/useSubscribeToQueryCache.mjs.map +1 -0
- package/build/umd/index.development.js +1667 -1529
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +4 -4
- package/src/CachePanel/ActiveQuery.tsx +380 -0
- package/src/CachePanel/CachePanel.tsx +439 -0
- package/src/CachePanel/Header/QueryStatusCount.tsx +93 -0
- package/src/CachePanel/QueryRow.tsx +125 -0
- package/src/__tests__/Explorer.test.tsx +3 -2
- package/src/__tests__/devtools.test.tsx +229 -9
- package/src/devtools.tsx +10 -865
- package/src/styledComponents.ts +19 -1
- package/src/types.ts +12 -0
- package/src/useSubscribeToQueryCache.ts +26 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CachePanel.esm.js","sources":["../../../src/CachePanel/CachePanel.tsx"],"sourcesContent":["import React from 'react'\nimport type { QueryClient } from '@tanstack/react-query'\nimport { useQueryClient, onlineManager } from '@tanstack/react-query'\nimport { rankItem } from '@tanstack/match-sorter-utils'\n\nimport { Panel, Button, Input, Select } from '../styledComponents'\nimport useSubscribeToQueryCache from '../useSubscribeToQueryCache'\nimport QueryStatusCount from './Header/QueryStatusCount'\nimport QueryRow from './QueryRow'\nimport ActiveQuery from './ActiveQuery'\nimport type { Side } from '../utils'\nimport { sortFns, getResizeHandleStyle, defaultPanelSize } from '../utils'\nimport { ThemeProvider, defaultTheme as theme } from '../theme'\nimport type { DevToolsErrorType } from '../types'\nimport useLocalStorage from '../useLocalStorage'\nimport Logo from '../Logo'\nimport ScreenReader from '../screenreader'\n\ninterface DevtoolsPanelOptions {\n /**\n * The standard React style object used to style a component with inline styles\n */\n style?: React.CSSProperties\n /**\n * The standard React className property used to style a component with classes\n */\n className?: string\n /**\n * A boolean variable indicating whether the panel is open or closed\n */\n isOpen?: boolean\n /**\n * nonce for style element for CSP\n */\n styleNonce?: string\n /**\n * A function that toggles the open and close state of the panel\n */\n setIsOpen: (isOpen: boolean) => void\n /**\n * Handles the opening and closing the devtools panel\n */\n onDragStart: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void\n /**\n * The position of the React Query devtools panel.\n * Defaults to 'bottom'.\n */\n position?: Side\n /**\n * Handles the panel position select change\n */\n onPositionChange?: (side: Side) => void\n /**\n * Show a close button inside the panel\n */\n showCloseButton?: boolean\n /**\n * Use this to add props to the close button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n closeButtonProps?: React.ComponentPropsWithoutRef<'button'>\n /**\n * Custom instance of QueryClient\n */\n queryClient?: QueryClient\n /**\n * Use this so you can define custom errors that can be shown in the devtools.\n */\n errorTypes?: DevToolsErrorType[]\n}\n\nexport const ReactQueryDevtoolsPanel = React.forwardRef<\n HTMLDivElement,\n DevtoolsPanelOptions\n>(function ReactQueryDevtoolsPanel(props, ref): React.ReactElement {\n const {\n isOpen = true,\n styleNonce,\n setIsOpen,\n queryClient,\n onDragStart,\n onPositionChange,\n showCloseButton,\n position,\n closeButtonProps = {},\n errorTypes = [],\n ...panelProps\n } = props\n\n const { onClick: onCloseClick, ...otherCloseButtonProps } = closeButtonProps\n\n const client = useQueryClient(queryClient)\n const queryCache = client.getQueryCache()\n\n const [sort, setSort] = useLocalStorage(\n 'reactQueryDevtoolsSortFn',\n Object.keys(sortFns)[0],\n )\n\n const [filter, setFilter] = useLocalStorage('reactQueryDevtoolsFilter', '')\n\n const [baseSort, setBaseSort] = useLocalStorage(\n 'reactQueryDevtoolsBaseSort',\n 1,\n )\n\n const sortFn = React.useMemo(() => sortFns[sort as string], [sort])\n\n const queriesCount = useSubscribeToQueryCache(\n queryCache,\n () => queryCache.getAll().length,\n !isOpen,\n )\n\n const [activeQueryHash, setActiveQueryHash] = useLocalStorage(\n 'reactQueryDevtoolsActiveQueryHash',\n '',\n )\n\n const queries = React.useMemo(() => {\n const unsortedQueries = queryCache.getAll()\n\n if (queriesCount === 0) {\n return []\n }\n\n const filtered = filter\n ? unsortedQueries.filter(\n (item) => rankItem(item.queryHash, filter).passed,\n )\n : [...unsortedQueries]\n\n const sorted = sortFn\n ? filtered.sort((a, b) => sortFn(a, b) * (baseSort as number))\n : filtered\n\n return sorted\n }, [baseSort, sortFn, filter, queriesCount, queryCache])\n\n const [isMockOffline, setMockOffline] = React.useState(false)\n\n return (\n <ThemeProvider theme={theme}>\n <Panel\n ref={ref}\n className=\"ReactQueryDevtoolsPanel\"\n aria-label=\"React Query Devtools Panel\"\n id=\"ReactQueryDevtoolsPanel\"\n {...panelProps}\n style={{\n height: defaultPanelSize,\n position: 'relative',\n ...panelProps.style,\n }}\n >\n <style\n nonce={styleNonce}\n dangerouslySetInnerHTML={{\n __html: `\n .ReactQueryDevtoolsPanel * {\n scrollbar-color: ${theme.backgroundAlt} ${theme.gray};\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar, .ReactQueryDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar-track, .ReactQueryDevtoolsPanel scrollbar-track {\n background: ${theme.backgroundAlt};\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar-thumb, .ReactQueryDevtoolsPanel scrollbar-thumb {\n background: ${theme.gray};\n border-radius: .5em;\n border: 3px solid ${theme.backgroundAlt};\n }\n `,\n }}\n />\n <div\n style={getResizeHandleStyle(position)}\n onMouseDown={onDragStart}\n ></div>\n\n {isOpen && (\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <button\n type=\"button\"\n aria-label=\"Close React Query Devtools\"\n aria-controls=\"ReactQueryDevtoolsPanel\"\n aria-haspopup=\"true\"\n aria-expanded=\"true\"\n onClick={() => setIsOpen(false)}\n style={{\n display: 'inline-flex',\n background: 'none',\n border: 0,\n padding: 0,\n marginRight: '.5em',\n cursor: 'pointer',\n }}\n >\n <Logo aria-hidden />\n <ScreenReader text=\"Close React Query Devtools\" />\n </button>\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: '.5em',\n }}\n >\n <QueryStatusCount queryCache={queryCache} />\n {position && onPositionChange ? (\n <Select\n aria-label=\"Panel position\"\n value={position}\n style={{ marginInlineStart: '.5em' }}\n onChange={(e) => onPositionChange(e.target.value as Side)}\n >\n <option value=\"left\">Left</option>\n <option value=\"right\">Right</option>\n <option value=\"top\">Top</option>\n <option value=\"bottom\">Bottom</option>\n </Select>\n ) : null}\n </div>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: '0.5em',\n }}\n >\n <Input\n placeholder=\"Filter\"\n aria-label=\"Filter by queryhash\"\n value={filter ?? ''}\n onChange={(e) => setFilter(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') setFilter('')\n }}\n style={{\n flex: '1',\n width: '100%',\n }}\n />\n <Select\n aria-label=\"Sort queries\"\n value={sort}\n onChange={(e) => setSort(e.target.value)}\n style={{\n flex: '1',\n minWidth: 75,\n marginRight: '.5em',\n }}\n >\n {Object.keys(sortFns).map((key) => (\n <option key={key} value={key}>\n Sort by {key}\n </option>\n ))}\n </Select>\n <Button\n type=\"button\"\n onClick={() => setBaseSort((old) => old * -1)}\n style={{\n padding: '.3em .4em',\n marginRight: '.5em',\n }}\n >\n {baseSort === 1 ? '⬆ Asc' : '⬇ Desc'}\n </Button>\n <Button\n title=\"Clear cache\"\n aria-label=\"Clear cache\"\n type=\"button\"\n onClick={() => queryCache.clear()}\n style={{\n padding: '.3em .4em',\n marginRight: '.5em',\n }}\n >\n Clear\n </Button>\n <Button\n type=\"button\"\n onClick={() => {\n if (isMockOffline) {\n onlineManager.setOnline(undefined)\n setMockOffline(false)\n window.dispatchEvent(new Event('online'))\n } else {\n onlineManager.setOnline(false)\n setMockOffline(true)\n window.dispatchEvent(new Event('offline'))\n }\n }}\n aria-label={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n title={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n style={{\n padding: '0',\n height: '2em',\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"2em\"\n height=\"2em\"\n viewBox=\"0 0 24 24\"\n stroke={isMockOffline ? theme.danger : 'currentColor'}\n fill=\"none\"\n >\n {isMockOffline ? (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n <path d=\"M9.172 15.172a4 4 0 0 1 5.656 0\" />\n <path d=\"M6.343 12.343a7.963 7.963 0 0 1 3.864 -2.14m4.163 .155a7.965 7.965 0 0 1 3.287 2\" />\n <path d=\"M3.515 9.515a12 12 0 0 1 3.544 -2.455m3.101 -.92a12 12 0 0 1 10.325 3.374\" />\n <line x1=\"3\" y1=\"3\" x2=\"21\" y2=\"21\" />\n </>\n ) : (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n <path d=\"M9.172 15.172a4 4 0 0 1 5.656 0\" />\n <path d=\"M6.343 12.343a8 8 0 0 1 11.314 0\" />\n <path d=\"M3.515 9.515c4.686 -4.687 12.284 -4.687 17 0\" />\n </>\n )}\n </svg>\n <ScreenReader\n text={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n />\n </Button>\n </div>\n </div>\n </div>\n <div\n style={{\n overflowY: 'auto',\n flex: '1',\n }}\n >\n {queries.map((query) => {\n return (\n <QueryRow\n queryKey={query.queryKey}\n activeQueryHash={activeQueryHash}\n setActiveQueryHash={setActiveQueryHash}\n key={query.queryHash}\n queryCache={queryCache}\n />\n )\n })}\n </div>\n </div>\n )}\n\n {activeQueryHash && isOpen ? (\n <ActiveQuery\n activeQueryHash={activeQueryHash}\n queryCache={queryCache}\n queryClient={client}\n errorTypes={errorTypes}\n />\n ) : null}\n\n {showCloseButton ? (\n <Button\n type=\"button\"\n aria-controls=\"ReactQueryDevtoolsPanel\"\n aria-haspopup=\"true\"\n aria-expanded=\"true\"\n {...(otherCloseButtonProps as Record<string, unknown>)}\n style={{\n position: 'absolute',\n zIndex: 99999,\n margin: '.5em',\n bottom: 0,\n left: 0,\n ...otherCloseButtonProps.style,\n }}\n onClick={(e) => {\n setIsOpen(false)\n onCloseClick?.(e)\n }}\n >\n Close\n </Button>\n ) : null}\n </Panel>\n </ThemeProvider>\n )\n})\n\nReactQueryDevtoolsPanel.displayName = 'ReactQueryDevtoolsPanel'\n\nexport default ReactQueryDevtoolsPanel\n"],"names":["ReactQueryDevtoolsPanel","React","forwardRef","props","ref","isOpen","styleNonce","setIsOpen","queryClient","onDragStart","onPositionChange","showCloseButton","position","closeButtonProps","errorTypes","panelProps","onClick","onCloseClick","otherCloseButtonProps","client","useQueryClient","queryCache","getQueryCache","sort","setSort","useLocalStorage","Object","keys","sortFns","filter","setFilter","baseSort","setBaseSort","sortFn","useMemo","queriesCount","useSubscribeToQueryCache","getAll","length","activeQueryHash","setActiveQueryHash","queries","unsortedQueries","filtered","item","rankItem","queryHash","passed","sorted","a","b","isMockOffline","setMockOffline","useState","theme","height","defaultPanelSize","style","__html","backgroundAlt","gray","getResizeHandleStyle","flex","minHeight","maxHeight","overflow","borderRight","grayAlt","display","flexDirection","padding","background","justifyContent","alignItems","border","marginRight","cursor","marginBottom","marginInlineStart","e","target","value","flexWrap","gap","key","width","minWidth","map","old","clear","onlineManager","setOnline","undefined","window","dispatchEvent","Event","danger","overflowY","query","queryKey","zIndex","margin","bottom","left","displayName"],"mappings":"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"}
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var reactQuery = require('@tanstack/react-query');
|
|
8
|
+
var matchSorterUtils = require('@tanstack/match-sorter-utils');
|
|
9
|
+
var styledComponents = require('../styledComponents.js');
|
|
10
|
+
var useSubscribeToQueryCache = require('../useSubscribeToQueryCache.js');
|
|
11
|
+
var QueryStatusCount = require('./Header/QueryStatusCount.js');
|
|
12
|
+
var QueryRow = require('./QueryRow.js');
|
|
13
|
+
var ActiveQuery = require('./ActiveQuery.js');
|
|
14
|
+
var utils = require('../utils.js');
|
|
15
|
+
var theme = require('../theme.js');
|
|
16
|
+
var useLocalStorage = require('../useLocalStorage.js');
|
|
17
|
+
var Logo = require('../Logo.js');
|
|
18
|
+
var screenreader = require('../screenreader.js');
|
|
19
|
+
|
|
20
|
+
const ReactQueryDevtoolsPanel = /*#__PURE__*/React.forwardRef(function ReactQueryDevtoolsPanel(props, ref) {
|
|
21
|
+
const {
|
|
22
|
+
isOpen = true,
|
|
23
|
+
styleNonce,
|
|
24
|
+
setIsOpen,
|
|
25
|
+
queryClient,
|
|
26
|
+
onDragStart,
|
|
27
|
+
onPositionChange,
|
|
28
|
+
showCloseButton,
|
|
29
|
+
position,
|
|
30
|
+
closeButtonProps = {},
|
|
31
|
+
errorTypes = [],
|
|
32
|
+
...panelProps
|
|
33
|
+
} = props;
|
|
34
|
+
const {
|
|
35
|
+
onClick: onCloseClick,
|
|
36
|
+
...otherCloseButtonProps
|
|
37
|
+
} = closeButtonProps;
|
|
38
|
+
const client = reactQuery.useQueryClient(queryClient);
|
|
39
|
+
const queryCache = client.getQueryCache();
|
|
40
|
+
const [sort, setSort] = useLocalStorage.default('reactQueryDevtoolsSortFn', Object.keys(utils.sortFns)[0]);
|
|
41
|
+
const [filter, setFilter] = useLocalStorage.default('reactQueryDevtoolsFilter', '');
|
|
42
|
+
const [baseSort, setBaseSort] = useLocalStorage.default('reactQueryDevtoolsBaseSort', 1);
|
|
43
|
+
const sortFn = React.useMemo(() => utils.sortFns[sort], [sort]);
|
|
44
|
+
const queriesCount = useSubscribeToQueryCache.default(queryCache, () => queryCache.getAll().length, !isOpen);
|
|
45
|
+
const [activeQueryHash, setActiveQueryHash] = useLocalStorage.default('reactQueryDevtoolsActiveQueryHash', '');
|
|
46
|
+
const queries = React.useMemo(() => {
|
|
47
|
+
const unsortedQueries = queryCache.getAll();
|
|
48
|
+
if (queriesCount === 0) {
|
|
49
|
+
return [];
|
|
50
|
+
}
|
|
51
|
+
const filtered = filter ? unsortedQueries.filter(item => matchSorterUtils.rankItem(item.queryHash, filter).passed) : [...unsortedQueries];
|
|
52
|
+
const sorted = sortFn ? filtered.sort((a, b) => sortFn(a, b) * baseSort) : filtered;
|
|
53
|
+
return sorted;
|
|
54
|
+
}, [baseSort, sortFn, filter, queriesCount, queryCache]);
|
|
55
|
+
const [isMockOffline, setMockOffline] = React.useState(false);
|
|
56
|
+
return /*#__PURE__*/React.createElement(theme.ThemeProvider, {
|
|
57
|
+
theme: theme.defaultTheme
|
|
58
|
+
}, /*#__PURE__*/React.createElement(styledComponents.Panel, _rollupPluginBabelHelpers.extends({
|
|
59
|
+
ref: ref,
|
|
60
|
+
className: "ReactQueryDevtoolsPanel",
|
|
61
|
+
"aria-label": "React Query Devtools Panel",
|
|
62
|
+
id: "ReactQueryDevtoolsPanel"
|
|
63
|
+
}, panelProps, {
|
|
64
|
+
style: {
|
|
65
|
+
height: utils.defaultPanelSize,
|
|
66
|
+
position: 'relative',
|
|
67
|
+
...panelProps.style
|
|
68
|
+
}
|
|
69
|
+
}), /*#__PURE__*/React.createElement("style", {
|
|
70
|
+
nonce: styleNonce,
|
|
71
|
+
dangerouslySetInnerHTML: {
|
|
72
|
+
__html: `
|
|
73
|
+
.ReactQueryDevtoolsPanel * {
|
|
74
|
+
scrollbar-color: ${theme.defaultTheme.backgroundAlt} ${theme.defaultTheme.gray};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.ReactQueryDevtoolsPanel *::-webkit-scrollbar, .ReactQueryDevtoolsPanel scrollbar {
|
|
78
|
+
width: 1em;
|
|
79
|
+
height: 1em;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.ReactQueryDevtoolsPanel *::-webkit-scrollbar-track, .ReactQueryDevtoolsPanel scrollbar-track {
|
|
83
|
+
background: ${theme.defaultTheme.backgroundAlt};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.ReactQueryDevtoolsPanel *::-webkit-scrollbar-thumb, .ReactQueryDevtoolsPanel scrollbar-thumb {
|
|
87
|
+
background: ${theme.defaultTheme.gray};
|
|
88
|
+
border-radius: .5em;
|
|
89
|
+
border: 3px solid ${theme.defaultTheme.backgroundAlt};
|
|
90
|
+
}
|
|
91
|
+
`
|
|
92
|
+
}
|
|
93
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
94
|
+
style: utils.getResizeHandleStyle(position),
|
|
95
|
+
onMouseDown: onDragStart
|
|
96
|
+
}), isOpen && /*#__PURE__*/React.createElement("div", {
|
|
97
|
+
style: {
|
|
98
|
+
flex: '1 1 500px',
|
|
99
|
+
minHeight: '40%',
|
|
100
|
+
maxHeight: '100%',
|
|
101
|
+
overflow: 'auto',
|
|
102
|
+
borderRight: `1px solid ${theme.defaultTheme.grayAlt}`,
|
|
103
|
+
display: 'flex',
|
|
104
|
+
flexDirection: 'column'
|
|
105
|
+
}
|
|
106
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
107
|
+
style: {
|
|
108
|
+
padding: '.5em',
|
|
109
|
+
background: theme.defaultTheme.backgroundAlt,
|
|
110
|
+
display: 'flex',
|
|
111
|
+
justifyContent: 'space-between',
|
|
112
|
+
alignItems: 'center'
|
|
113
|
+
}
|
|
114
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
115
|
+
type: "button",
|
|
116
|
+
"aria-label": "Close React Query Devtools",
|
|
117
|
+
"aria-controls": "ReactQueryDevtoolsPanel",
|
|
118
|
+
"aria-haspopup": "true",
|
|
119
|
+
"aria-expanded": "true",
|
|
120
|
+
onClick: () => setIsOpen(false),
|
|
121
|
+
style: {
|
|
122
|
+
display: 'inline-flex',
|
|
123
|
+
background: 'none',
|
|
124
|
+
border: 0,
|
|
125
|
+
padding: 0,
|
|
126
|
+
marginRight: '.5em',
|
|
127
|
+
cursor: 'pointer'
|
|
128
|
+
}
|
|
129
|
+
}, /*#__PURE__*/React.createElement(Logo.default, {
|
|
130
|
+
"aria-hidden": true
|
|
131
|
+
}), /*#__PURE__*/React.createElement(screenreader.default, {
|
|
132
|
+
text: "Close React Query Devtools"
|
|
133
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
134
|
+
style: {
|
|
135
|
+
display: 'flex',
|
|
136
|
+
flexDirection: 'column'
|
|
137
|
+
}
|
|
138
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
139
|
+
style: {
|
|
140
|
+
display: 'flex',
|
|
141
|
+
justifyContent: 'space-between',
|
|
142
|
+
alignItems: 'center',
|
|
143
|
+
marginBottom: '.5em'
|
|
144
|
+
}
|
|
145
|
+
}, /*#__PURE__*/React.createElement(QueryStatusCount.default, {
|
|
146
|
+
queryCache: queryCache
|
|
147
|
+
}), position && onPositionChange ? /*#__PURE__*/React.createElement(styledComponents.Select, {
|
|
148
|
+
"aria-label": "Panel position",
|
|
149
|
+
value: position,
|
|
150
|
+
style: {
|
|
151
|
+
marginInlineStart: '.5em'
|
|
152
|
+
},
|
|
153
|
+
onChange: e => onPositionChange(e.target.value)
|
|
154
|
+
}, /*#__PURE__*/React.createElement("option", {
|
|
155
|
+
value: "left"
|
|
156
|
+
}, "Left"), /*#__PURE__*/React.createElement("option", {
|
|
157
|
+
value: "right"
|
|
158
|
+
}, "Right"), /*#__PURE__*/React.createElement("option", {
|
|
159
|
+
value: "top"
|
|
160
|
+
}, "Top"), /*#__PURE__*/React.createElement("option", {
|
|
161
|
+
value: "bottom"
|
|
162
|
+
}, "Bottom")) : null), /*#__PURE__*/React.createElement("div", {
|
|
163
|
+
style: {
|
|
164
|
+
display: 'flex',
|
|
165
|
+
alignItems: 'center',
|
|
166
|
+
flexWrap: 'wrap',
|
|
167
|
+
gap: '0.5em'
|
|
168
|
+
}
|
|
169
|
+
}, /*#__PURE__*/React.createElement(styledComponents.Input, {
|
|
170
|
+
placeholder: "Filter",
|
|
171
|
+
"aria-label": "Filter by queryhash",
|
|
172
|
+
value: filter != null ? filter : '',
|
|
173
|
+
onChange: e => setFilter(e.target.value),
|
|
174
|
+
onKeyDown: e => {
|
|
175
|
+
if (e.key === 'Escape') setFilter('');
|
|
176
|
+
},
|
|
177
|
+
style: {
|
|
178
|
+
flex: '1',
|
|
179
|
+
width: '100%'
|
|
180
|
+
}
|
|
181
|
+
}), /*#__PURE__*/React.createElement(styledComponents.Select, {
|
|
182
|
+
"aria-label": "Sort queries",
|
|
183
|
+
value: sort,
|
|
184
|
+
onChange: e => setSort(e.target.value),
|
|
185
|
+
style: {
|
|
186
|
+
flex: '1',
|
|
187
|
+
minWidth: 75,
|
|
188
|
+
marginRight: '.5em'
|
|
189
|
+
}
|
|
190
|
+
}, Object.keys(utils.sortFns).map(key => /*#__PURE__*/React.createElement("option", {
|
|
191
|
+
key: key,
|
|
192
|
+
value: key
|
|
193
|
+
}, "Sort by ", key))), /*#__PURE__*/React.createElement(styledComponents.Button, {
|
|
194
|
+
type: "button",
|
|
195
|
+
onClick: () => setBaseSort(old => old * -1),
|
|
196
|
+
style: {
|
|
197
|
+
padding: '.3em .4em',
|
|
198
|
+
marginRight: '.5em'
|
|
199
|
+
}
|
|
200
|
+
}, baseSort === 1 ? '⬆ Asc' : '⬇ Desc'), /*#__PURE__*/React.createElement(styledComponents.Button, {
|
|
201
|
+
title: "Clear cache",
|
|
202
|
+
"aria-label": "Clear cache",
|
|
203
|
+
type: "button",
|
|
204
|
+
onClick: () => queryCache.clear(),
|
|
205
|
+
style: {
|
|
206
|
+
padding: '.3em .4em',
|
|
207
|
+
marginRight: '.5em'
|
|
208
|
+
}
|
|
209
|
+
}, "Clear"), /*#__PURE__*/React.createElement(styledComponents.Button, {
|
|
210
|
+
type: "button",
|
|
211
|
+
onClick: () => {
|
|
212
|
+
if (isMockOffline) {
|
|
213
|
+
reactQuery.onlineManager.setOnline(undefined);
|
|
214
|
+
setMockOffline(false);
|
|
215
|
+
window.dispatchEvent(new Event('online'));
|
|
216
|
+
} else {
|
|
217
|
+
reactQuery.onlineManager.setOnline(false);
|
|
218
|
+
setMockOffline(true);
|
|
219
|
+
window.dispatchEvent(new Event('offline'));
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
"aria-label": isMockOffline ? 'Restore offline mock' : 'Mock offline behavior',
|
|
223
|
+
title: isMockOffline ? 'Restore offline mock' : 'Mock offline behavior',
|
|
224
|
+
style: {
|
|
225
|
+
padding: '0',
|
|
226
|
+
height: '2em'
|
|
227
|
+
}
|
|
228
|
+
}, /*#__PURE__*/React.createElement("svg", {
|
|
229
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
230
|
+
width: "2em",
|
|
231
|
+
height: "2em",
|
|
232
|
+
viewBox: "0 0 24 24",
|
|
233
|
+
stroke: isMockOffline ? theme.defaultTheme.danger : 'currentColor',
|
|
234
|
+
fill: "none"
|
|
235
|
+
}, isMockOffline ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("path", {
|
|
236
|
+
stroke: "none",
|
|
237
|
+
d: "M0 0h24v24H0z",
|
|
238
|
+
fill: "none"
|
|
239
|
+
}), /*#__PURE__*/React.createElement("line", {
|
|
240
|
+
x1: "12",
|
|
241
|
+
y1: "18",
|
|
242
|
+
x2: "12.01",
|
|
243
|
+
y2: "18"
|
|
244
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
245
|
+
d: "M9.172 15.172a4 4 0 0 1 5.656 0"
|
|
246
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
247
|
+
d: "M6.343 12.343a7.963 7.963 0 0 1 3.864 -2.14m4.163 .155a7.965 7.965 0 0 1 3.287 2"
|
|
248
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
249
|
+
d: "M3.515 9.515a12 12 0 0 1 3.544 -2.455m3.101 -.92a12 12 0 0 1 10.325 3.374"
|
|
250
|
+
}), /*#__PURE__*/React.createElement("line", {
|
|
251
|
+
x1: "3",
|
|
252
|
+
y1: "3",
|
|
253
|
+
x2: "21",
|
|
254
|
+
y2: "21"
|
|
255
|
+
})) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("path", {
|
|
256
|
+
stroke: "none",
|
|
257
|
+
d: "M0 0h24v24H0z",
|
|
258
|
+
fill: "none"
|
|
259
|
+
}), /*#__PURE__*/React.createElement("line", {
|
|
260
|
+
x1: "12",
|
|
261
|
+
y1: "18",
|
|
262
|
+
x2: "12.01",
|
|
263
|
+
y2: "18"
|
|
264
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
265
|
+
d: "M9.172 15.172a4 4 0 0 1 5.656 0"
|
|
266
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
267
|
+
d: "M6.343 12.343a8 8 0 0 1 11.314 0"
|
|
268
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
269
|
+
d: "M3.515 9.515c4.686 -4.687 12.284 -4.687 17 0"
|
|
270
|
+
}))), /*#__PURE__*/React.createElement(screenreader.default, {
|
|
271
|
+
text: isMockOffline ? 'Restore offline mock' : 'Mock offline behavior'
|
|
272
|
+
}))))), /*#__PURE__*/React.createElement("div", {
|
|
273
|
+
style: {
|
|
274
|
+
overflowY: 'auto',
|
|
275
|
+
flex: '1'
|
|
276
|
+
}
|
|
277
|
+
}, queries.map(query => {
|
|
278
|
+
return /*#__PURE__*/React.createElement(QueryRow.default, {
|
|
279
|
+
queryKey: query.queryKey,
|
|
280
|
+
activeQueryHash: activeQueryHash,
|
|
281
|
+
setActiveQueryHash: setActiveQueryHash,
|
|
282
|
+
key: query.queryHash,
|
|
283
|
+
queryCache: queryCache
|
|
284
|
+
});
|
|
285
|
+
}))), activeQueryHash && isOpen ? /*#__PURE__*/React.createElement(ActiveQuery.default, {
|
|
286
|
+
activeQueryHash: activeQueryHash,
|
|
287
|
+
queryCache: queryCache,
|
|
288
|
+
queryClient: client,
|
|
289
|
+
errorTypes: errorTypes
|
|
290
|
+
}) : null, showCloseButton ? /*#__PURE__*/React.createElement(styledComponents.Button, _rollupPluginBabelHelpers.extends({
|
|
291
|
+
type: "button",
|
|
292
|
+
"aria-controls": "ReactQueryDevtoolsPanel",
|
|
293
|
+
"aria-haspopup": "true",
|
|
294
|
+
"aria-expanded": "true"
|
|
295
|
+
}, otherCloseButtonProps, {
|
|
296
|
+
style: {
|
|
297
|
+
position: 'absolute',
|
|
298
|
+
zIndex: 99999,
|
|
299
|
+
margin: '.5em',
|
|
300
|
+
bottom: 0,
|
|
301
|
+
left: 0,
|
|
302
|
+
...otherCloseButtonProps.style
|
|
303
|
+
},
|
|
304
|
+
onClick: e => {
|
|
305
|
+
setIsOpen(false);
|
|
306
|
+
onCloseClick == null ? void 0 : onCloseClick(e);
|
|
307
|
+
}
|
|
308
|
+
}), "Close") : null));
|
|
309
|
+
});
|
|
310
|
+
ReactQueryDevtoolsPanel.displayName = 'ReactQueryDevtoolsPanel';
|
|
311
|
+
var ReactQueryDevtoolsPanel$1 = ReactQueryDevtoolsPanel;
|
|
312
|
+
|
|
313
|
+
exports.ReactQueryDevtoolsPanel = ReactQueryDevtoolsPanel;
|
|
314
|
+
exports.default = ReactQueryDevtoolsPanel$1;
|
|
315
|
+
//# sourceMappingURL=CachePanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CachePanel.js","sources":["../../../src/CachePanel/CachePanel.tsx"],"sourcesContent":["import React from 'react'\nimport type { QueryClient } from '@tanstack/react-query'\nimport { useQueryClient, onlineManager } from '@tanstack/react-query'\nimport { rankItem } from '@tanstack/match-sorter-utils'\n\nimport { Panel, Button, Input, Select } from '../styledComponents'\nimport useSubscribeToQueryCache from '../useSubscribeToQueryCache'\nimport QueryStatusCount from './Header/QueryStatusCount'\nimport QueryRow from './QueryRow'\nimport ActiveQuery from './ActiveQuery'\nimport type { Side } from '../utils'\nimport { sortFns, getResizeHandleStyle, defaultPanelSize } from '../utils'\nimport { ThemeProvider, defaultTheme as theme } from '../theme'\nimport type { DevToolsErrorType } from '../types'\nimport useLocalStorage from '../useLocalStorage'\nimport Logo from '../Logo'\nimport ScreenReader from '../screenreader'\n\ninterface DevtoolsPanelOptions {\n /**\n * The standard React style object used to style a component with inline styles\n */\n style?: React.CSSProperties\n /**\n * The standard React className property used to style a component with classes\n */\n className?: string\n /**\n * A boolean variable indicating whether the panel is open or closed\n */\n isOpen?: boolean\n /**\n * nonce for style element for CSP\n */\n styleNonce?: string\n /**\n * A function that toggles the open and close state of the panel\n */\n setIsOpen: (isOpen: boolean) => void\n /**\n * Handles the opening and closing the devtools panel\n */\n onDragStart: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void\n /**\n * The position of the React Query devtools panel.\n * Defaults to 'bottom'.\n */\n position?: Side\n /**\n * Handles the panel position select change\n */\n onPositionChange?: (side: Side) => void\n /**\n * Show a close button inside the panel\n */\n showCloseButton?: boolean\n /**\n * Use this to add props to the close button. For example, you can add className, style (merge and override default style), onClick (extend default handler), etc.\n */\n closeButtonProps?: React.ComponentPropsWithoutRef<'button'>\n /**\n * Custom instance of QueryClient\n */\n queryClient?: QueryClient\n /**\n * Use this so you can define custom errors that can be shown in the devtools.\n */\n errorTypes?: DevToolsErrorType[]\n}\n\nexport const ReactQueryDevtoolsPanel = React.forwardRef<\n HTMLDivElement,\n DevtoolsPanelOptions\n>(function ReactQueryDevtoolsPanel(props, ref): React.ReactElement {\n const {\n isOpen = true,\n styleNonce,\n setIsOpen,\n queryClient,\n onDragStart,\n onPositionChange,\n showCloseButton,\n position,\n closeButtonProps = {},\n errorTypes = [],\n ...panelProps\n } = props\n\n const { onClick: onCloseClick, ...otherCloseButtonProps } = closeButtonProps\n\n const client = useQueryClient(queryClient)\n const queryCache = client.getQueryCache()\n\n const [sort, setSort] = useLocalStorage(\n 'reactQueryDevtoolsSortFn',\n Object.keys(sortFns)[0],\n )\n\n const [filter, setFilter] = useLocalStorage('reactQueryDevtoolsFilter', '')\n\n const [baseSort, setBaseSort] = useLocalStorage(\n 'reactQueryDevtoolsBaseSort',\n 1,\n )\n\n const sortFn = React.useMemo(() => sortFns[sort as string], [sort])\n\n const queriesCount = useSubscribeToQueryCache(\n queryCache,\n () => queryCache.getAll().length,\n !isOpen,\n )\n\n const [activeQueryHash, setActiveQueryHash] = useLocalStorage(\n 'reactQueryDevtoolsActiveQueryHash',\n '',\n )\n\n const queries = React.useMemo(() => {\n const unsortedQueries = queryCache.getAll()\n\n if (queriesCount === 0) {\n return []\n }\n\n const filtered = filter\n ? unsortedQueries.filter(\n (item) => rankItem(item.queryHash, filter).passed,\n )\n : [...unsortedQueries]\n\n const sorted = sortFn\n ? filtered.sort((a, b) => sortFn(a, b) * (baseSort as number))\n : filtered\n\n return sorted\n }, [baseSort, sortFn, filter, queriesCount, queryCache])\n\n const [isMockOffline, setMockOffline] = React.useState(false)\n\n return (\n <ThemeProvider theme={theme}>\n <Panel\n ref={ref}\n className=\"ReactQueryDevtoolsPanel\"\n aria-label=\"React Query Devtools Panel\"\n id=\"ReactQueryDevtoolsPanel\"\n {...panelProps}\n style={{\n height: defaultPanelSize,\n position: 'relative',\n ...panelProps.style,\n }}\n >\n <style\n nonce={styleNonce}\n dangerouslySetInnerHTML={{\n __html: `\n .ReactQueryDevtoolsPanel * {\n scrollbar-color: ${theme.backgroundAlt} ${theme.gray};\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar, .ReactQueryDevtoolsPanel scrollbar {\n width: 1em;\n height: 1em;\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar-track, .ReactQueryDevtoolsPanel scrollbar-track {\n background: ${theme.backgroundAlt};\n }\n\n .ReactQueryDevtoolsPanel *::-webkit-scrollbar-thumb, .ReactQueryDevtoolsPanel scrollbar-thumb {\n background: ${theme.gray};\n border-radius: .5em;\n border: 3px solid ${theme.backgroundAlt};\n }\n `,\n }}\n />\n <div\n style={getResizeHandleStyle(position)}\n onMouseDown={onDragStart}\n ></div>\n\n {isOpen && (\n <div\n style={{\n flex: '1 1 500px',\n minHeight: '40%',\n maxHeight: '100%',\n overflow: 'auto',\n borderRight: `1px solid ${theme.grayAlt}`,\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n padding: '.5em',\n background: theme.backgroundAlt,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <button\n type=\"button\"\n aria-label=\"Close React Query Devtools\"\n aria-controls=\"ReactQueryDevtoolsPanel\"\n aria-haspopup=\"true\"\n aria-expanded=\"true\"\n onClick={() => setIsOpen(false)}\n style={{\n display: 'inline-flex',\n background: 'none',\n border: 0,\n padding: 0,\n marginRight: '.5em',\n cursor: 'pointer',\n }}\n >\n <Logo aria-hidden />\n <ScreenReader text=\"Close React Query Devtools\" />\n </button>\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: '.5em',\n }}\n >\n <QueryStatusCount queryCache={queryCache} />\n {position && onPositionChange ? (\n <Select\n aria-label=\"Panel position\"\n value={position}\n style={{ marginInlineStart: '.5em' }}\n onChange={(e) => onPositionChange(e.target.value as Side)}\n >\n <option value=\"left\">Left</option>\n <option value=\"right\">Right</option>\n <option value=\"top\">Top</option>\n <option value=\"bottom\">Bottom</option>\n </Select>\n ) : null}\n </div>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: '0.5em',\n }}\n >\n <Input\n placeholder=\"Filter\"\n aria-label=\"Filter by queryhash\"\n value={filter ?? ''}\n onChange={(e) => setFilter(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Escape') setFilter('')\n }}\n style={{\n flex: '1',\n width: '100%',\n }}\n />\n <Select\n aria-label=\"Sort queries\"\n value={sort}\n onChange={(e) => setSort(e.target.value)}\n style={{\n flex: '1',\n minWidth: 75,\n marginRight: '.5em',\n }}\n >\n {Object.keys(sortFns).map((key) => (\n <option key={key} value={key}>\n Sort by {key}\n </option>\n ))}\n </Select>\n <Button\n type=\"button\"\n onClick={() => setBaseSort((old) => old * -1)}\n style={{\n padding: '.3em .4em',\n marginRight: '.5em',\n }}\n >\n {baseSort === 1 ? '⬆ Asc' : '⬇ Desc'}\n </Button>\n <Button\n title=\"Clear cache\"\n aria-label=\"Clear cache\"\n type=\"button\"\n onClick={() => queryCache.clear()}\n style={{\n padding: '.3em .4em',\n marginRight: '.5em',\n }}\n >\n Clear\n </Button>\n <Button\n type=\"button\"\n onClick={() => {\n if (isMockOffline) {\n onlineManager.setOnline(undefined)\n setMockOffline(false)\n window.dispatchEvent(new Event('online'))\n } else {\n onlineManager.setOnline(false)\n setMockOffline(true)\n window.dispatchEvent(new Event('offline'))\n }\n }}\n aria-label={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n title={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n style={{\n padding: '0',\n height: '2em',\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"2em\"\n height=\"2em\"\n viewBox=\"0 0 24 24\"\n stroke={isMockOffline ? theme.danger : 'currentColor'}\n fill=\"none\"\n >\n {isMockOffline ? (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n <path d=\"M9.172 15.172a4 4 0 0 1 5.656 0\" />\n <path d=\"M6.343 12.343a7.963 7.963 0 0 1 3.864 -2.14m4.163 .155a7.965 7.965 0 0 1 3.287 2\" />\n <path d=\"M3.515 9.515a12 12 0 0 1 3.544 -2.455m3.101 -.92a12 12 0 0 1 10.325 3.374\" />\n <line x1=\"3\" y1=\"3\" x2=\"21\" y2=\"21\" />\n </>\n ) : (\n <>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <line x1=\"12\" y1=\"18\" x2=\"12.01\" y2=\"18\" />\n <path d=\"M9.172 15.172a4 4 0 0 1 5.656 0\" />\n <path d=\"M6.343 12.343a8 8 0 0 1 11.314 0\" />\n <path d=\"M3.515 9.515c4.686 -4.687 12.284 -4.687 17 0\" />\n </>\n )}\n </svg>\n <ScreenReader\n text={\n isMockOffline\n ? 'Restore offline mock'\n : 'Mock offline behavior'\n }\n />\n </Button>\n </div>\n </div>\n </div>\n <div\n style={{\n overflowY: 'auto',\n flex: '1',\n }}\n >\n {queries.map((query) => {\n return (\n <QueryRow\n queryKey={query.queryKey}\n activeQueryHash={activeQueryHash}\n setActiveQueryHash={setActiveQueryHash}\n key={query.queryHash}\n queryCache={queryCache}\n />\n )\n })}\n </div>\n </div>\n )}\n\n {activeQueryHash && isOpen ? (\n <ActiveQuery\n activeQueryHash={activeQueryHash}\n queryCache={queryCache}\n queryClient={client}\n errorTypes={errorTypes}\n />\n ) : null}\n\n {showCloseButton ? (\n <Button\n type=\"button\"\n aria-controls=\"ReactQueryDevtoolsPanel\"\n aria-haspopup=\"true\"\n aria-expanded=\"true\"\n {...(otherCloseButtonProps as Record<string, unknown>)}\n style={{\n position: 'absolute',\n zIndex: 99999,\n margin: '.5em',\n bottom: 0,\n left: 0,\n ...otherCloseButtonProps.style,\n }}\n onClick={(e) => {\n setIsOpen(false)\n onCloseClick?.(e)\n }}\n >\n Close\n </Button>\n ) : null}\n </Panel>\n </ThemeProvider>\n )\n})\n\nReactQueryDevtoolsPanel.displayName = 'ReactQueryDevtoolsPanel'\n\nexport default ReactQueryDevtoolsPanel\n"],"names":["ReactQueryDevtoolsPanel","React","forwardRef","props","ref","isOpen","styleNonce","setIsOpen","queryClient","onDragStart","onPositionChange","showCloseButton","position","closeButtonProps","errorTypes","panelProps","onClick","onCloseClick","otherCloseButtonProps","client","useQueryClient","queryCache","getQueryCache","sort","setSort","useLocalStorage","Object","keys","sortFns","filter","setFilter","baseSort","setBaseSort","sortFn","useMemo","queriesCount","useSubscribeToQueryCache","getAll","length","activeQueryHash","setActiveQueryHash","queries","unsortedQueries","filtered","item","rankItem","queryHash","passed","sorted","a","b","isMockOffline","setMockOffline","useState","ThemeProvider","theme","Panel","_extends","height","defaultPanelSize","style","__html","backgroundAlt","gray","getResizeHandleStyle","flex","minHeight","maxHeight","overflow","borderRight","grayAlt","display","flexDirection","padding","background","justifyContent","alignItems","border","marginRight","cursor","Logo","ScreenReader","marginBottom","QueryStatusCount","Select","marginInlineStart","e","target","value","flexWrap","gap","Input","key","width","minWidth","map","Button","old","clear","onlineManager","setOnline","undefined","window","dispatchEvent","Event","danger","overflowY","query","QueryRow","queryKey","ActiveQuery","zIndex","margin","bottom","left","displayName"],"mappings":"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"}
|