@tanstack/react-query-devtools 5.0.0-alpha.12 → 5.0.0-alpha.17

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.
Files changed (73) hide show
  1. package/build/lib/CachePanel/ActiveQuery.d.ts +18 -0
  2. package/build/lib/CachePanel/ActiveQuery.esm.js +271 -0
  3. package/build/lib/CachePanel/ActiveQuery.esm.js.map +1 -0
  4. package/build/lib/CachePanel/ActiveQuery.js +275 -0
  5. package/build/lib/CachePanel/ActiveQuery.js.map +1 -0
  6. package/build/lib/CachePanel/ActiveQuery.mjs +257 -0
  7. package/build/lib/CachePanel/ActiveQuery.mjs.map +1 -0
  8. package/build/lib/CachePanel/CachePanel.d.ts +57 -0
  9. package/build/lib/CachePanel/CachePanel.esm.js +310 -0
  10. package/build/lib/CachePanel/CachePanel.esm.js.map +1 -0
  11. package/build/lib/CachePanel/CachePanel.js +315 -0
  12. package/build/lib/CachePanel/CachePanel.js.map +1 -0
  13. package/build/lib/CachePanel/CachePanel.mjs +310 -0
  14. package/build/lib/CachePanel/CachePanel.mjs.map +1 -0
  15. package/build/lib/CachePanel/Header/QueryStatusCount.d.ts +7 -0
  16. package/build/lib/CachePanel/Header/QueryStatusCount.esm.js +49 -0
  17. package/build/lib/CachePanel/Header/QueryStatusCount.esm.js.map +1 -0
  18. package/build/lib/CachePanel/Header/QueryStatusCount.js +53 -0
  19. package/build/lib/CachePanel/Header/QueryStatusCount.js.map +1 -0
  20. package/build/lib/CachePanel/Header/QueryStatusCount.mjs +49 -0
  21. package/build/lib/CachePanel/Header/QueryStatusCount.mjs.map +1 -0
  22. package/build/lib/CachePanel/QueryRow.d.ts +13 -0
  23. package/build/lib/CachePanel/QueryRow.esm.js +98 -0
  24. package/build/lib/CachePanel/QueryRow.esm.js.map +1 -0
  25. package/build/lib/CachePanel/QueryRow.js +102 -0
  26. package/build/lib/CachePanel/QueryRow.js.map +1 -0
  27. package/build/lib/CachePanel/QueryRow.mjs +82 -0
  28. package/build/lib/CachePanel/QueryRow.mjs.map +1 -0
  29. package/build/lib/devtools.d.ts +3 -64
  30. package/build/lib/devtools.esm.js +2 -669
  31. package/build/lib/devtools.esm.js.map +1 -1
  32. package/build/lib/devtools.js +3 -669
  33. package/build/lib/devtools.js.map +1 -1
  34. package/build/lib/devtools.mjs +2 -639
  35. package/build/lib/devtools.mjs.map +1 -1
  36. package/build/lib/index.esm.js +2 -1
  37. package/build/lib/index.esm.js.map +1 -1
  38. package/build/lib/index.js +2 -1
  39. package/build/lib/index.js.map +1 -1
  40. package/build/lib/index.mjs +2 -1
  41. package/build/lib/index.mjs.map +1 -1
  42. package/build/lib/index.prod.esm.js +754 -713
  43. package/build/lib/index.prod.esm.js.map +1 -1
  44. package/build/lib/index.prod.js +751 -710
  45. package/build/lib/index.prod.js.map +1 -1
  46. package/build/lib/index.prod.mjs +755 -714
  47. package/build/lib/index.prod.mjs.map +1 -1
  48. package/build/lib/styledComponents.esm.js +8 -0
  49. package/build/lib/styledComponents.esm.js.map +1 -1
  50. package/build/lib/styledComponents.js +8 -0
  51. package/build/lib/styledComponents.js.map +1 -1
  52. package/build/lib/styledComponents.mjs +8 -0
  53. package/build/lib/styledComponents.mjs.map +1 -1
  54. package/build/lib/types.d.ts +11 -0
  55. package/build/lib/useSubscribeToQueryCache.d.ts +3 -0
  56. package/build/lib/useSubscribeToQueryCache.esm.js +15 -0
  57. package/build/lib/useSubscribeToQueryCache.esm.js.map +1 -0
  58. package/build/lib/useSubscribeToQueryCache.js +19 -0
  59. package/build/lib/useSubscribeToQueryCache.js.map +1 -0
  60. package/build/lib/useSubscribeToQueryCache.mjs +15 -0
  61. package/build/lib/useSubscribeToQueryCache.mjs.map +1 -0
  62. package/build/umd/index.development.js +2394 -2353
  63. package/build/umd/index.development.js.map +1 -1
  64. package/package.json +1 -1
  65. package/src/CachePanel/ActiveQuery.tsx +380 -0
  66. package/src/CachePanel/CachePanel.tsx +439 -0
  67. package/src/CachePanel/Header/QueryStatusCount.tsx +93 -0
  68. package/src/CachePanel/QueryRow.tsx +125 -0
  69. package/src/__tests__/devtools.test.tsx +46 -0
  70. package/src/devtools.tsx +5 -1008
  71. package/src/styledComponents.ts +16 -0
  72. package/src/types.ts +12 -0
  73. package/src/useSubscribeToQueryCache.ts +26 -0
@@ -0,0 +1,310 @@
1
+ import { extends as _extends } from '../_virtual/_rollupPluginBabelHelpers.mjs';
2
+ import React__default from 'react';
3
+ import { useQueryClient, onlineManager } from '@tanstack/react-query';
4
+ import { rankItem } from '@tanstack/match-sorter-utils';
5
+ import { Panel, Select, Input, Button } from '../styledComponents.mjs';
6
+ import useSubscribeToQueryCache from '../useSubscribeToQueryCache.mjs';
7
+ import QueryStatusCount from './Header/QueryStatusCount.mjs';
8
+ import QueryRow from './QueryRow.mjs';
9
+ import ActiveQuery from './ActiveQuery.mjs';
10
+ import { sortFns, defaultPanelSize, getResizeHandleStyle } from '../utils.mjs';
11
+ import { ThemeProvider, defaultTheme } from '../theme.mjs';
12
+ import useLocalStorage from '../useLocalStorage.mjs';
13
+ import Logo from '../Logo.mjs';
14
+ import ScreenReader from '../screenreader.mjs';
15
+
16
+ const ReactQueryDevtoolsPanel = /*#__PURE__*/React__default.forwardRef(function ReactQueryDevtoolsPanel(props, ref) {
17
+ const {
18
+ isOpen = true,
19
+ styleNonce,
20
+ setIsOpen,
21
+ queryClient,
22
+ onDragStart,
23
+ onPositionChange,
24
+ showCloseButton,
25
+ position,
26
+ closeButtonProps = {},
27
+ errorTypes = [],
28
+ ...panelProps
29
+ } = props;
30
+ const {
31
+ onClick: onCloseClick,
32
+ ...otherCloseButtonProps
33
+ } = closeButtonProps;
34
+ const client = useQueryClient(queryClient);
35
+ const queryCache = client.getQueryCache();
36
+ const [sort, setSort] = useLocalStorage('reactQueryDevtoolsSortFn', Object.keys(sortFns)[0]);
37
+ const [filter, setFilter] = useLocalStorage('reactQueryDevtoolsFilter', '');
38
+ const [baseSort, setBaseSort] = useLocalStorage('reactQueryDevtoolsBaseSort', 1);
39
+ const sortFn = React__default.useMemo(() => sortFns[sort], [sort]);
40
+ const queriesCount = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().length, !isOpen);
41
+ const [activeQueryHash, setActiveQueryHash] = useLocalStorage('reactQueryDevtoolsActiveQueryHash', '');
42
+ const queries = React__default.useMemo(() => {
43
+ const unsortedQueries = queryCache.getAll();
44
+ if (queriesCount === 0) {
45
+ return [];
46
+ }
47
+ const filtered = filter ? unsortedQueries.filter(item => rankItem(item.queryHash, filter).passed) : [...unsortedQueries];
48
+ const sorted = sortFn ? filtered.sort((a, b) => sortFn(a, b) * baseSort) : filtered;
49
+ return sorted;
50
+ }, [baseSort, sortFn, filter, queriesCount, queryCache]);
51
+ const [isMockOffline, setMockOffline] = React__default.useState(false);
52
+ return /*#__PURE__*/React__default.createElement(ThemeProvider, {
53
+ theme: defaultTheme
54
+ }, /*#__PURE__*/React__default.createElement(Panel, _extends({
55
+ ref: ref,
56
+ className: "ReactQueryDevtoolsPanel",
57
+ "aria-label": "React Query Devtools Panel",
58
+ id: "ReactQueryDevtoolsPanel"
59
+ }, panelProps, {
60
+ style: {
61
+ height: defaultPanelSize,
62
+ position: 'relative',
63
+ ...panelProps.style
64
+ }
65
+ }), /*#__PURE__*/React__default.createElement("style", {
66
+ nonce: styleNonce,
67
+ dangerouslySetInnerHTML: {
68
+ __html: `
69
+ .ReactQueryDevtoolsPanel * {
70
+ scrollbar-color: ${defaultTheme.backgroundAlt} ${defaultTheme.gray};
71
+ }
72
+
73
+ .ReactQueryDevtoolsPanel *::-webkit-scrollbar, .ReactQueryDevtoolsPanel scrollbar {
74
+ width: 1em;
75
+ height: 1em;
76
+ }
77
+
78
+ .ReactQueryDevtoolsPanel *::-webkit-scrollbar-track, .ReactQueryDevtoolsPanel scrollbar-track {
79
+ background: ${defaultTheme.backgroundAlt};
80
+ }
81
+
82
+ .ReactQueryDevtoolsPanel *::-webkit-scrollbar-thumb, .ReactQueryDevtoolsPanel scrollbar-thumb {
83
+ background: ${defaultTheme.gray};
84
+ border-radius: .5em;
85
+ border: 3px solid ${defaultTheme.backgroundAlt};
86
+ }
87
+ `
88
+ }
89
+ }), /*#__PURE__*/React__default.createElement("div", {
90
+ style: getResizeHandleStyle(position),
91
+ onMouseDown: onDragStart
92
+ }), isOpen && /*#__PURE__*/React__default.createElement("div", {
93
+ style: {
94
+ flex: '1 1 500px',
95
+ minHeight: '40%',
96
+ maxHeight: '100%',
97
+ overflow: 'auto',
98
+ borderRight: `1px solid ${defaultTheme.grayAlt}`,
99
+ display: 'flex',
100
+ flexDirection: 'column'
101
+ }
102
+ }, /*#__PURE__*/React__default.createElement("div", {
103
+ style: {
104
+ padding: '.5em',
105
+ background: defaultTheme.backgroundAlt,
106
+ display: 'flex',
107
+ justifyContent: 'space-between',
108
+ alignItems: 'center'
109
+ }
110
+ }, /*#__PURE__*/React__default.createElement("button", {
111
+ type: "button",
112
+ "aria-label": "Close React Query Devtools",
113
+ "aria-controls": "ReactQueryDevtoolsPanel",
114
+ "aria-haspopup": "true",
115
+ "aria-expanded": "true",
116
+ onClick: () => setIsOpen(false),
117
+ style: {
118
+ display: 'inline-flex',
119
+ background: 'none',
120
+ border: 0,
121
+ padding: 0,
122
+ marginRight: '.5em',
123
+ cursor: 'pointer'
124
+ }
125
+ }, /*#__PURE__*/React__default.createElement(Logo, {
126
+ "aria-hidden": true
127
+ }), /*#__PURE__*/React__default.createElement(ScreenReader, {
128
+ text: "Close React Query Devtools"
129
+ })), /*#__PURE__*/React__default.createElement("div", {
130
+ style: {
131
+ display: 'flex',
132
+ flexDirection: 'column'
133
+ }
134
+ }, /*#__PURE__*/React__default.createElement("div", {
135
+ style: {
136
+ display: 'flex',
137
+ justifyContent: 'space-between',
138
+ alignItems: 'center',
139
+ marginBottom: '.5em'
140
+ }
141
+ }, /*#__PURE__*/React__default.createElement(QueryStatusCount, {
142
+ queryCache: queryCache
143
+ }), position && onPositionChange ? /*#__PURE__*/React__default.createElement(Select, {
144
+ "aria-label": "Panel position",
145
+ value: position,
146
+ style: {
147
+ marginInlineStart: '.5em'
148
+ },
149
+ onChange: e => onPositionChange(e.target.value)
150
+ }, /*#__PURE__*/React__default.createElement("option", {
151
+ value: "left"
152
+ }, "Left"), /*#__PURE__*/React__default.createElement("option", {
153
+ value: "right"
154
+ }, "Right"), /*#__PURE__*/React__default.createElement("option", {
155
+ value: "top"
156
+ }, "Top"), /*#__PURE__*/React__default.createElement("option", {
157
+ value: "bottom"
158
+ }, "Bottom")) : null), /*#__PURE__*/React__default.createElement("div", {
159
+ style: {
160
+ display: 'flex',
161
+ alignItems: 'center',
162
+ flexWrap: 'wrap',
163
+ gap: '0.5em'
164
+ }
165
+ }, /*#__PURE__*/React__default.createElement(Input, {
166
+ placeholder: "Filter",
167
+ "aria-label": "Filter by queryhash",
168
+ value: filter ?? '',
169
+ onChange: e => setFilter(e.target.value),
170
+ onKeyDown: e => {
171
+ if (e.key === 'Escape') setFilter('');
172
+ },
173
+ style: {
174
+ flex: '1',
175
+ width: '100%'
176
+ }
177
+ }), /*#__PURE__*/React__default.createElement(Select, {
178
+ "aria-label": "Sort queries",
179
+ value: sort,
180
+ onChange: e => setSort(e.target.value),
181
+ style: {
182
+ flex: '1',
183
+ minWidth: 75,
184
+ marginRight: '.5em'
185
+ }
186
+ }, Object.keys(sortFns).map(key => /*#__PURE__*/React__default.createElement("option", {
187
+ key: key,
188
+ value: key
189
+ }, "Sort by ", key))), /*#__PURE__*/React__default.createElement(Button, {
190
+ type: "button",
191
+ onClick: () => setBaseSort(old => old * -1),
192
+ style: {
193
+ padding: '.3em .4em',
194
+ marginRight: '.5em'
195
+ }
196
+ }, baseSort === 1 ? '⬆ Asc' : '⬇ Desc'), /*#__PURE__*/React__default.createElement(Button, {
197
+ title: "Clear cache",
198
+ "aria-label": "Clear cache",
199
+ type: "button",
200
+ onClick: () => queryCache.clear(),
201
+ style: {
202
+ padding: '.3em .4em',
203
+ marginRight: '.5em'
204
+ }
205
+ }, "Clear"), /*#__PURE__*/React__default.createElement(Button, {
206
+ type: "button",
207
+ onClick: () => {
208
+ if (isMockOffline) {
209
+ onlineManager.setOnline(undefined);
210
+ setMockOffline(false);
211
+ window.dispatchEvent(new Event('online'));
212
+ } else {
213
+ onlineManager.setOnline(false);
214
+ setMockOffline(true);
215
+ window.dispatchEvent(new Event('offline'));
216
+ }
217
+ },
218
+ "aria-label": isMockOffline ? 'Restore offline mock' : 'Mock offline behavior',
219
+ title: isMockOffline ? 'Restore offline mock' : 'Mock offline behavior',
220
+ style: {
221
+ padding: '0',
222
+ height: '2em'
223
+ }
224
+ }, /*#__PURE__*/React__default.createElement("svg", {
225
+ xmlns: "http://www.w3.org/2000/svg",
226
+ width: "2em",
227
+ height: "2em",
228
+ viewBox: "0 0 24 24",
229
+ stroke: isMockOffline ? defaultTheme.danger : 'currentColor',
230
+ fill: "none"
231
+ }, isMockOffline ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("path", {
232
+ stroke: "none",
233
+ d: "M0 0h24v24H0z",
234
+ fill: "none"
235
+ }), /*#__PURE__*/React__default.createElement("line", {
236
+ x1: "12",
237
+ y1: "18",
238
+ x2: "12.01",
239
+ y2: "18"
240
+ }), /*#__PURE__*/React__default.createElement("path", {
241
+ d: "M9.172 15.172a4 4 0 0 1 5.656 0"
242
+ }), /*#__PURE__*/React__default.createElement("path", {
243
+ 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"
244
+ }), /*#__PURE__*/React__default.createElement("path", {
245
+ d: "M3.515 9.515a12 12 0 0 1 3.544 -2.455m3.101 -.92a12 12 0 0 1 10.325 3.374"
246
+ }), /*#__PURE__*/React__default.createElement("line", {
247
+ x1: "3",
248
+ y1: "3",
249
+ x2: "21",
250
+ y2: "21"
251
+ })) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("path", {
252
+ stroke: "none",
253
+ d: "M0 0h24v24H0z",
254
+ fill: "none"
255
+ }), /*#__PURE__*/React__default.createElement("line", {
256
+ x1: "12",
257
+ y1: "18",
258
+ x2: "12.01",
259
+ y2: "18"
260
+ }), /*#__PURE__*/React__default.createElement("path", {
261
+ d: "M9.172 15.172a4 4 0 0 1 5.656 0"
262
+ }), /*#__PURE__*/React__default.createElement("path", {
263
+ d: "M6.343 12.343a8 8 0 0 1 11.314 0"
264
+ }), /*#__PURE__*/React__default.createElement("path", {
265
+ d: "M3.515 9.515c4.686 -4.687 12.284 -4.687 17 0"
266
+ }))), /*#__PURE__*/React__default.createElement(ScreenReader, {
267
+ text: isMockOffline ? 'Restore offline mock' : 'Mock offline behavior'
268
+ }))))), /*#__PURE__*/React__default.createElement("div", {
269
+ style: {
270
+ overflowY: 'auto',
271
+ flex: '1'
272
+ }
273
+ }, queries.map(query => {
274
+ return /*#__PURE__*/React__default.createElement(QueryRow, {
275
+ queryKey: query.queryKey,
276
+ activeQueryHash: activeQueryHash,
277
+ setActiveQueryHash: setActiveQueryHash,
278
+ key: query.queryHash,
279
+ queryCache: queryCache
280
+ });
281
+ }))), activeQueryHash && isOpen ? /*#__PURE__*/React__default.createElement(ActiveQuery, {
282
+ activeQueryHash: activeQueryHash,
283
+ queryCache: queryCache,
284
+ queryClient: client,
285
+ errorTypes: errorTypes
286
+ }) : null, showCloseButton ? /*#__PURE__*/React__default.createElement(Button, _extends({
287
+ type: "button",
288
+ "aria-controls": "ReactQueryDevtoolsPanel",
289
+ "aria-haspopup": "true",
290
+ "aria-expanded": "true"
291
+ }, otherCloseButtonProps, {
292
+ style: {
293
+ position: 'absolute',
294
+ zIndex: 99999,
295
+ margin: '.5em',
296
+ bottom: 0,
297
+ left: 0,
298
+ ...otherCloseButtonProps.style
299
+ },
300
+ onClick: e => {
301
+ setIsOpen(false);
302
+ onCloseClick?.(e);
303
+ }
304
+ }), "Close") : null));
305
+ });
306
+ ReactQueryDevtoolsPanel.displayName = 'ReactQueryDevtoolsPanel';
307
+ var ReactQueryDevtoolsPanel$1 = ReactQueryDevtoolsPanel;
308
+
309
+ export { ReactQueryDevtoolsPanel, ReactQueryDevtoolsPanel$1 as default };
310
+ //# sourceMappingURL=CachePanel.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CachePanel.mjs","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,7 @@
1
+ import type { QueryCache } from '@tanstack/react-query';
2
+ /**
3
+ * Displays the number of queries for each status
4
+ */
5
+ export default function QueryStatusCount({ queryCache, }: {
6
+ queryCache: QueryCache;
7
+ }): JSX.Element;
@@ -0,0 +1,49 @@
1
+ import React__default from 'react';
2
+ import { QueryKeys, QueryKey, Code } from '../../styledComponents.esm.js';
3
+ import { getQueryStatusLabel } from '../../utils.esm.js';
4
+ import useSubscribeToQueryCache from '../../useSubscribeToQueryCache.esm.js';
5
+ import { defaultTheme } from '../../theme.esm.js';
6
+
7
+ /**
8
+ * Displays the number of queries for each status
9
+ */
10
+ function QueryStatusCount({
11
+ queryCache
12
+ }) {
13
+ const hasFresh = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => getQueryStatusLabel(q) === 'fresh').length);
14
+ const hasFetching = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => getQueryStatusLabel(q) === 'fetching').length);
15
+ const hasPaused = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => getQueryStatusLabel(q) === 'paused').length);
16
+ const hasStale = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => getQueryStatusLabel(q) === 'stale').length);
17
+ const hasInactive = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => getQueryStatusLabel(q) === 'inactive').length);
18
+ return /*#__PURE__*/React__default.createElement(QueryKeys, null, /*#__PURE__*/React__default.createElement(QueryKey, {
19
+ style: {
20
+ background: defaultTheme.success,
21
+ opacity: hasFresh ? 1 : 0.3
22
+ }
23
+ }, "fresh ", /*#__PURE__*/React__default.createElement(Code, null, "(", hasFresh, ")")), ' ', /*#__PURE__*/React__default.createElement(QueryKey, {
24
+ style: {
25
+ background: defaultTheme.active,
26
+ opacity: hasFetching ? 1 : 0.3
27
+ }
28
+ }, "fetching ", /*#__PURE__*/React__default.createElement(Code, null, "(", hasFetching, ")")), ' ', /*#__PURE__*/React__default.createElement(QueryKey, {
29
+ style: {
30
+ background: defaultTheme.paused,
31
+ opacity: hasPaused ? 1 : 0.3
32
+ }
33
+ }, "paused ", /*#__PURE__*/React__default.createElement(Code, null, "(", hasPaused, ")")), ' ', /*#__PURE__*/React__default.createElement(QueryKey, {
34
+ style: {
35
+ background: defaultTheme.warning,
36
+ color: 'black',
37
+ textShadow: '0',
38
+ opacity: hasStale ? 1 : 0.3
39
+ }
40
+ }, "stale ", /*#__PURE__*/React__default.createElement(Code, null, "(", hasStale, ")")), ' ', /*#__PURE__*/React__default.createElement(QueryKey, {
41
+ style: {
42
+ background: defaultTheme.gray,
43
+ opacity: hasInactive ? 1 : 0.3
44
+ }
45
+ }, "inactive ", /*#__PURE__*/React__default.createElement(Code, null, "(", hasInactive, ")")));
46
+ }
47
+
48
+ export { QueryStatusCount as default };
49
+ //# sourceMappingURL=QueryStatusCount.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryStatusCount.esm.js","sources":["../../../../src/CachePanel/Header/QueryStatusCount.tsx"],"sourcesContent":["import React from 'react'\nimport type { QueryCache } from '@tanstack/react-query'\n\nimport { Code, QueryKey, QueryKeys } from '../../styledComponents'\nimport { getQueryStatusLabel } from '../../utils'\nimport useSubscribeToQueryCache from '../../useSubscribeToQueryCache'\nimport { defaultTheme as theme } from '../../theme'\n\n/**\n * Displays the number of queries for each status\n */\nexport default function QueryStatusCount({\n queryCache,\n}: {\n queryCache: QueryCache\n}) {\n const hasFresh = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'fresh')\n .length,\n )\n const hasFetching = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'fetching')\n .length,\n )\n const hasPaused = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'paused')\n .length,\n )\n const hasStale = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'stale')\n .length,\n )\n const hasInactive = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'inactive')\n .length,\n )\n return (\n <QueryKeys>\n <QueryKey\n style={{\n background: theme.success,\n opacity: hasFresh ? 1 : 0.3,\n }}\n >\n fresh <Code>({hasFresh})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.active,\n opacity: hasFetching ? 1 : 0.3,\n }}\n >\n fetching <Code>({hasFetching})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.paused,\n opacity: hasPaused ? 1 : 0.3,\n }}\n >\n paused <Code>({hasPaused})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.warning,\n color: 'black',\n textShadow: '0',\n opacity: hasStale ? 1 : 0.3,\n }}\n >\n stale <Code>({hasStale})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.gray,\n opacity: hasInactive ? 1 : 0.3,\n }}\n >\n inactive <Code>({hasInactive})</Code>\n </QueryKey>\n </QueryKeys>\n )\n}\n"],"names":["QueryStatusCount","queryCache","hasFresh","useSubscribeToQueryCache","getAll","filter","q","getQueryStatusLabel","length","hasFetching","hasPaused","hasStale","hasInactive","React","background","theme","success","opacity","active","paused","warning","color","textShadow","gray"],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var styledComponents = require('../../styledComponents.js');
7
+ var utils = require('../../utils.js');
8
+ var useSubscribeToQueryCache = require('../../useSubscribeToQueryCache.js');
9
+ var theme = require('../../theme.js');
10
+
11
+ /**
12
+ * Displays the number of queries for each status
13
+ */
14
+ function QueryStatusCount({
15
+ queryCache
16
+ }) {
17
+ const hasFresh = useSubscribeToQueryCache.default(queryCache, () => queryCache.getAll().filter(q => utils.getQueryStatusLabel(q) === 'fresh').length);
18
+ const hasFetching = useSubscribeToQueryCache.default(queryCache, () => queryCache.getAll().filter(q => utils.getQueryStatusLabel(q) === 'fetching').length);
19
+ const hasPaused = useSubscribeToQueryCache.default(queryCache, () => queryCache.getAll().filter(q => utils.getQueryStatusLabel(q) === 'paused').length);
20
+ const hasStale = useSubscribeToQueryCache.default(queryCache, () => queryCache.getAll().filter(q => utils.getQueryStatusLabel(q) === 'stale').length);
21
+ const hasInactive = useSubscribeToQueryCache.default(queryCache, () => queryCache.getAll().filter(q => utils.getQueryStatusLabel(q) === 'inactive').length);
22
+ return /*#__PURE__*/React.createElement(styledComponents.QueryKeys, null, /*#__PURE__*/React.createElement(styledComponents.QueryKey, {
23
+ style: {
24
+ background: theme.defaultTheme.success,
25
+ opacity: hasFresh ? 1 : 0.3
26
+ }
27
+ }, "fresh ", /*#__PURE__*/React.createElement(styledComponents.Code, null, "(", hasFresh, ")")), ' ', /*#__PURE__*/React.createElement(styledComponents.QueryKey, {
28
+ style: {
29
+ background: theme.defaultTheme.active,
30
+ opacity: hasFetching ? 1 : 0.3
31
+ }
32
+ }, "fetching ", /*#__PURE__*/React.createElement(styledComponents.Code, null, "(", hasFetching, ")")), ' ', /*#__PURE__*/React.createElement(styledComponents.QueryKey, {
33
+ style: {
34
+ background: theme.defaultTheme.paused,
35
+ opacity: hasPaused ? 1 : 0.3
36
+ }
37
+ }, "paused ", /*#__PURE__*/React.createElement(styledComponents.Code, null, "(", hasPaused, ")")), ' ', /*#__PURE__*/React.createElement(styledComponents.QueryKey, {
38
+ style: {
39
+ background: theme.defaultTheme.warning,
40
+ color: 'black',
41
+ textShadow: '0',
42
+ opacity: hasStale ? 1 : 0.3
43
+ }
44
+ }, "stale ", /*#__PURE__*/React.createElement(styledComponents.Code, null, "(", hasStale, ")")), ' ', /*#__PURE__*/React.createElement(styledComponents.QueryKey, {
45
+ style: {
46
+ background: theme.defaultTheme.gray,
47
+ opacity: hasInactive ? 1 : 0.3
48
+ }
49
+ }, "inactive ", /*#__PURE__*/React.createElement(styledComponents.Code, null, "(", hasInactive, ")")));
50
+ }
51
+
52
+ exports.default = QueryStatusCount;
53
+ //# sourceMappingURL=QueryStatusCount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryStatusCount.js","sources":["../../../../src/CachePanel/Header/QueryStatusCount.tsx"],"sourcesContent":["import React from 'react'\nimport type { QueryCache } from '@tanstack/react-query'\n\nimport { Code, QueryKey, QueryKeys } from '../../styledComponents'\nimport { getQueryStatusLabel } from '../../utils'\nimport useSubscribeToQueryCache from '../../useSubscribeToQueryCache'\nimport { defaultTheme as theme } from '../../theme'\n\n/**\n * Displays the number of queries for each status\n */\nexport default function QueryStatusCount({\n queryCache,\n}: {\n queryCache: QueryCache\n}) {\n const hasFresh = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'fresh')\n .length,\n )\n const hasFetching = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'fetching')\n .length,\n )\n const hasPaused = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'paused')\n .length,\n )\n const hasStale = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'stale')\n .length,\n )\n const hasInactive = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'inactive')\n .length,\n )\n return (\n <QueryKeys>\n <QueryKey\n style={{\n background: theme.success,\n opacity: hasFresh ? 1 : 0.3,\n }}\n >\n fresh <Code>({hasFresh})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.active,\n opacity: hasFetching ? 1 : 0.3,\n }}\n >\n fetching <Code>({hasFetching})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.paused,\n opacity: hasPaused ? 1 : 0.3,\n }}\n >\n paused <Code>({hasPaused})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.warning,\n color: 'black',\n textShadow: '0',\n opacity: hasStale ? 1 : 0.3,\n }}\n >\n stale <Code>({hasStale})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.gray,\n opacity: hasInactive ? 1 : 0.3,\n }}\n >\n inactive <Code>({hasInactive})</Code>\n </QueryKey>\n </QueryKeys>\n )\n}\n"],"names":["QueryStatusCount","queryCache","hasFresh","useSubscribeToQueryCache","getAll","filter","q","getQueryStatusLabel","length","hasFetching","hasPaused","hasStale","hasInactive","QueryKeys","QueryKey","background","theme","success","opacity","Code","active","paused","warning","color","textShadow","gray"],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import React__default from 'react';
2
+ import { QueryKeys, QueryKey, Code } from '../../styledComponents.mjs';
3
+ import { getQueryStatusLabel } from '../../utils.mjs';
4
+ import useSubscribeToQueryCache from '../../useSubscribeToQueryCache.mjs';
5
+ import { defaultTheme } from '../../theme.mjs';
6
+
7
+ /**
8
+ * Displays the number of queries for each status
9
+ */
10
+ function QueryStatusCount({
11
+ queryCache
12
+ }) {
13
+ const hasFresh = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => getQueryStatusLabel(q) === 'fresh').length);
14
+ const hasFetching = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => getQueryStatusLabel(q) === 'fetching').length);
15
+ const hasPaused = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => getQueryStatusLabel(q) === 'paused').length);
16
+ const hasStale = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => getQueryStatusLabel(q) === 'stale').length);
17
+ const hasInactive = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().filter(q => getQueryStatusLabel(q) === 'inactive').length);
18
+ return /*#__PURE__*/React__default.createElement(QueryKeys, null, /*#__PURE__*/React__default.createElement(QueryKey, {
19
+ style: {
20
+ background: defaultTheme.success,
21
+ opacity: hasFresh ? 1 : 0.3
22
+ }
23
+ }, "fresh ", /*#__PURE__*/React__default.createElement(Code, null, "(", hasFresh, ")")), ' ', /*#__PURE__*/React__default.createElement(QueryKey, {
24
+ style: {
25
+ background: defaultTheme.active,
26
+ opacity: hasFetching ? 1 : 0.3
27
+ }
28
+ }, "fetching ", /*#__PURE__*/React__default.createElement(Code, null, "(", hasFetching, ")")), ' ', /*#__PURE__*/React__default.createElement(QueryKey, {
29
+ style: {
30
+ background: defaultTheme.paused,
31
+ opacity: hasPaused ? 1 : 0.3
32
+ }
33
+ }, "paused ", /*#__PURE__*/React__default.createElement(Code, null, "(", hasPaused, ")")), ' ', /*#__PURE__*/React__default.createElement(QueryKey, {
34
+ style: {
35
+ background: defaultTheme.warning,
36
+ color: 'black',
37
+ textShadow: '0',
38
+ opacity: hasStale ? 1 : 0.3
39
+ }
40
+ }, "stale ", /*#__PURE__*/React__default.createElement(Code, null, "(", hasStale, ")")), ' ', /*#__PURE__*/React__default.createElement(QueryKey, {
41
+ style: {
42
+ background: defaultTheme.gray,
43
+ opacity: hasInactive ? 1 : 0.3
44
+ }
45
+ }, "inactive ", /*#__PURE__*/React__default.createElement(Code, null, "(", hasInactive, ")")));
46
+ }
47
+
48
+ export { QueryStatusCount as default };
49
+ //# sourceMappingURL=QueryStatusCount.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryStatusCount.mjs","sources":["../../../../src/CachePanel/Header/QueryStatusCount.tsx"],"sourcesContent":["import React from 'react'\nimport type { QueryCache } from '@tanstack/react-query'\n\nimport { Code, QueryKey, QueryKeys } from '../../styledComponents'\nimport { getQueryStatusLabel } from '../../utils'\nimport useSubscribeToQueryCache from '../../useSubscribeToQueryCache'\nimport { defaultTheme as theme } from '../../theme'\n\n/**\n * Displays the number of queries for each status\n */\nexport default function QueryStatusCount({\n queryCache,\n}: {\n queryCache: QueryCache\n}) {\n const hasFresh = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'fresh')\n .length,\n )\n const hasFetching = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'fetching')\n .length,\n )\n const hasPaused = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'paused')\n .length,\n )\n const hasStale = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'stale')\n .length,\n )\n const hasInactive = useSubscribeToQueryCache(\n queryCache,\n () =>\n queryCache.getAll().filter((q) => getQueryStatusLabel(q) === 'inactive')\n .length,\n )\n return (\n <QueryKeys>\n <QueryKey\n style={{\n background: theme.success,\n opacity: hasFresh ? 1 : 0.3,\n }}\n >\n fresh <Code>({hasFresh})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.active,\n opacity: hasFetching ? 1 : 0.3,\n }}\n >\n fetching <Code>({hasFetching})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.paused,\n opacity: hasPaused ? 1 : 0.3,\n }}\n >\n paused <Code>({hasPaused})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.warning,\n color: 'black',\n textShadow: '0',\n opacity: hasStale ? 1 : 0.3,\n }}\n >\n stale <Code>({hasStale})</Code>\n </QueryKey>{' '}\n <QueryKey\n style={{\n background: theme.gray,\n opacity: hasInactive ? 1 : 0.3,\n }}\n >\n inactive <Code>({hasInactive})</Code>\n </QueryKey>\n </QueryKeys>\n )\n}\n"],"names":["QueryStatusCount","queryCache","hasFresh","useSubscribeToQueryCache","getAll","filter","q","getQueryStatusLabel","length","hasFetching","hasPaused","hasStale","hasInactive","React","background","theme","success","opacity","active","paused","warning","color","textShadow","gray"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { QueryCache, QueryKey as QueryKeyType } from '@tanstack/react-query';
3
+ interface QueryRowProps {
4
+ queryKey: QueryKeyType;
5
+ setActiveQueryHash: (hash: string) => void;
6
+ activeQueryHash?: string;
7
+ queryCache: QueryCache;
8
+ }
9
+ /**
10
+ * Row for a query in the query list
11
+ */
12
+ declare const QueryRow: React.MemoExoticComponent<({ queryKey, setActiveQueryHash, activeQueryHash, queryCache, }: QueryRowProps) => JSX.Element | null>;
13
+ export default QueryRow;