@buoy-gg/react-query 7.0.40 → 7.0.42

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 (244) hide show
  1. package/README.md +11 -69
  2. package/lib/commonjs/checkPeer.js +1 -0
  3. package/lib/commonjs/checkPeer.web.js +1 -0
  4. package/lib/commonjs/index.js +1 -736
  5. package/lib/commonjs/preset.js +1 -243
  6. package/lib/commonjs/react-query/components/DataEditorMode.js +1 -317
  7. package/lib/commonjs/react-query/components/FilterStatusBadge.js +1 -55
  8. package/lib/commonjs/react-query/components/MutationBrowserMode.js +1 -52
  9. package/lib/commonjs/react-query/components/MutationEditorMode.js +1 -276
  10. package/lib/commonjs/react-query/components/QueryBrowserMode.js +1 -99
  11. package/lib/commonjs/react-query/components/QueryDebugInfo.js +1 -107
  12. package/lib/commonjs/react-query/components/QueryFilterViewV3.js +1 -224
  13. package/lib/commonjs/react-query/components/QuerySelector.js +1 -209
  14. package/lib/commonjs/react-query/components/ReactQueryDevToolsModal.js +1 -91
  15. package/lib/commonjs/react-query/components/ReactQuerySection.js +1 -47
  16. package/lib/commonjs/react-query/components/ReactQueryTracker.js +1 -38
  17. package/lib/commonjs/react-query/components/WifiToggle.js +1 -51
  18. package/lib/commonjs/react-query/components/modals/DataEditorModal.js +1 -103
  19. package/lib/commonjs/react-query/components/modals/MutationBrowserFooter.js +1 -61
  20. package/lib/commonjs/react-query/components/modals/MutationBrowserModal.js +1 -164
  21. package/lib/commonjs/react-query/components/modals/MutationEditorModal.js +1 -106
  22. package/lib/commonjs/react-query/components/modals/QueryBrowserFooter.js +1 -56
  23. package/lib/commonjs/react-query/components/modals/QueryBrowserModal.js +1 -254
  24. package/lib/commonjs/react-query/components/modals/ReactQueryModal.js +1 -83
  25. package/lib/commonjs/react-query/components/modals/ReactQueryModalHeader.js +1 -194
  26. package/lib/commonjs/react-query/components/modals/SwipeIndicator.js +1 -204
  27. package/lib/commonjs/react-query/components/query-browser/ActionButton.js +1 -100
  28. package/lib/commonjs/react-query/components/query-browser/ClearCacheButton.js +1 -53
  29. package/lib/commonjs/react-query/components/query-browser/Explorer.js +1 -75
  30. package/lib/commonjs/react-query/components/query-browser/MutationButton.js +1 -190
  31. package/lib/commonjs/react-query/components/query-browser/MutationDetails.js +1 -124
  32. package/lib/commonjs/react-query/components/query-browser/MutationDetailsChips.js +1 -68
  33. package/lib/commonjs/react-query/components/query-browser/MutationInformation.js +1 -118
  34. package/lib/commonjs/react-query/components/query-browser/MutationStatusCount.js +1 -84
  35. package/lib/commonjs/react-query/components/query-browser/MutationsList.js +1 -220
  36. package/lib/commonjs/react-query/components/query-browser/NetworkToggleButton.js +1 -54
  37. package/lib/commonjs/react-query/components/query-browser/QueryActions.js +1 -124
  38. package/lib/commonjs/react-query/components/query-browser/QueryBrowser.js +1 -181
  39. package/lib/commonjs/react-query/components/query-browser/QueryDetails.js +1 -141
  40. package/lib/commonjs/react-query/components/query-browser/QueryDetailsChip.js +1 -78
  41. package/lib/commonjs/react-query/components/query-browser/QueryInformation.js +1 -95
  42. package/lib/commonjs/react-query/components/query-browser/QueryRow.js +1 -96
  43. package/lib/commonjs/react-query/components/query-browser/QueryStatus.js +1 -167
  44. package/lib/commonjs/react-query/components/query-browser/QueryStatusCount.js +1 -100
  45. package/lib/commonjs/react-query/components/query-browser/StorageStatusCount.js +1 -61
  46. package/lib/commonjs/react-query/components/query-browser/index.js +1 -170
  47. package/lib/commonjs/react-query/components/query-browser/svgs.js +1 -72
  48. package/lib/commonjs/react-query/hooks/useActionButtons.js +1 -51
  49. package/lib/commonjs/react-query/hooks/useAllMutations.js +1 -85
  50. package/lib/commonjs/react-query/hooks/useAllQueries.js +1 -117
  51. package/lib/commonjs/react-query/hooks/useModalManager.js +1 -178
  52. package/lib/commonjs/react-query/hooks/useModalPersistence.js +1 -71
  53. package/lib/commonjs/react-query/hooks/useMutationActionButtons.js +1 -21
  54. package/lib/commonjs/react-query/hooks/useQueryStatusCounts.js +1 -114
  55. package/lib/commonjs/react-query/hooks/useReactQueryState.js +1 -24
  56. package/lib/commonjs/react-query/hooks/useSelectedMutation.js +1 -30
  57. package/lib/commonjs/react-query/hooks/useSelectedQuery.js +1 -96
  58. package/lib/commonjs/react-query/hooks/useStorageQueryCounts.js +1 -28
  59. package/lib/commonjs/react-query/hooks/useWifiState.js +1 -67
  60. package/lib/commonjs/react-query/stores/reactQueryEventStore.js +1 -302
  61. package/lib/commonjs/react-query/sync/dehydrate.js +1 -166
  62. package/lib/commonjs/react-query/sync/reactQuerySyncAdapter.js +1 -593
  63. package/lib/commonjs/react-query/sync/snapshotProvider.js +1 -289
  64. package/lib/commonjs/react-query/sync/useReactQuerySyncAdapter.js +1 -34
  65. package/lib/commonjs/react-query/types/types.js +1 -14
  66. package/lib/commonjs/react-query/utils/actions/deleteItem.js +1 -23
  67. package/lib/commonjs/react-query/utils/actions/emitDevToolsEvent.js +1 -40
  68. package/lib/commonjs/react-query/utils/actions/invalidate.js +1 -15
  69. package/lib/commonjs/react-query/utils/actions/refetch.js +1 -17
  70. package/lib/commonjs/react-query/utils/actions/remove.js +1 -15
  71. package/lib/commonjs/react-query/utils/actions/reset.js +1 -17
  72. package/lib/commonjs/react-query/utils/actions/triggerError.js +1 -33
  73. package/lib/commonjs/react-query/utils/actions/triggerLoading.js +1 -54
  74. package/lib/commonjs/react-query/utils/deleteNestedDataByPath.js +1 -56
  75. package/lib/commonjs/react-query/utils/getQueryStatusColor.js +1 -16
  76. package/lib/commonjs/react-query/utils/getQueryStatusLabel.js +1 -23
  77. package/lib/commonjs/react-query/utils/getStorageQueryCounts.js +1 -35
  78. package/lib/commonjs/react-query/utils/modalStorageOperations.js +1 -127
  79. package/lib/commonjs/react-query/utils/storageQueryUtils.js +1 -149
  80. package/lib/commonjs/react-query/utils/testIDs.js +1 -61
  81. package/lib/commonjs/react-query/utils/updateNestedDataByPath.js +1 -61
  82. package/lib/module/checkPeer.js +1 -0
  83. package/lib/module/checkPeer.web.js +1 -0
  84. package/lib/module/index.js +1 -135
  85. package/lib/module/preset.js +1 -239
  86. package/lib/module/react-query/components/DataEditorMode.js +1 -311
  87. package/lib/module/react-query/components/FilterStatusBadge.js +1 -51
  88. package/lib/module/react-query/components/MutationBrowserMode.js +1 -47
  89. package/lib/module/react-query/components/MutationEditorMode.js +1 -270
  90. package/lib/module/react-query/components/QueryBrowserMode.js +1 -94
  91. package/lib/module/react-query/components/QueryDebugInfo.js +1 -104
  92. package/lib/module/react-query/components/QueryFilterViewV3.js +1 -221
  93. package/lib/module/react-query/components/QuerySelector.js +1 -205
  94. package/lib/module/react-query/components/ReactQueryDevToolsModal.js +1 -87
  95. package/lib/module/react-query/components/ReactQuerySection.js +1 -43
  96. package/lib/module/react-query/components/ReactQueryTracker.js +1 -35
  97. package/lib/module/react-query/components/WifiToggle.js +1 -48
  98. package/lib/module/react-query/components/modals/DataEditorModal.js +1 -99
  99. package/lib/module/react-query/components/modals/MutationBrowserFooter.js +1 -56
  100. package/lib/module/react-query/components/modals/MutationBrowserModal.js +1 -161
  101. package/lib/module/react-query/components/modals/MutationEditorModal.js +1 -102
  102. package/lib/module/react-query/components/modals/QueryBrowserFooter.js +1 -51
  103. package/lib/module/react-query/components/modals/QueryBrowserModal.js +1 -250
  104. package/lib/module/react-query/components/modals/ReactQueryModal.js +1 -79
  105. package/lib/module/react-query/components/modals/ReactQueryModalHeader.js +1 -190
  106. package/lib/module/react-query/components/modals/SwipeIndicator.js +1 -201
  107. package/lib/module/react-query/components/query-browser/ActionButton.js +1 -96
  108. package/lib/module/react-query/components/query-browser/ClearCacheButton.js +1 -49
  109. package/lib/module/react-query/components/query-browser/Explorer.js +1 -70
  110. package/lib/module/react-query/components/query-browser/MutationButton.js +1 -186
  111. package/lib/module/react-query/components/query-browser/MutationDetails.js +1 -119
  112. package/lib/module/react-query/components/query-browser/MutationDetailsChips.js +1 -64
  113. package/lib/module/react-query/components/query-browser/MutationInformation.js +1 -113
  114. package/lib/module/react-query/components/query-browser/MutationStatusCount.js +1 -79
  115. package/lib/module/react-query/components/query-browser/MutationsList.js +1 -215
  116. package/lib/module/react-query/components/query-browser/NetworkToggleButton.js +1 -50
  117. package/lib/module/react-query/components/query-browser/QueryActions.js +1 -119
  118. package/lib/module/react-query/components/query-browser/QueryBrowser.js +1 -176
  119. package/lib/module/react-query/components/query-browser/QueryDetails.js +1 -136
  120. package/lib/module/react-query/components/query-browser/QueryDetailsChip.js +1 -74
  121. package/lib/module/react-query/components/query-browser/QueryInformation.js +1 -90
  122. package/lib/module/react-query/components/query-browser/QueryRow.js +1 -92
  123. package/lib/module/react-query/components/query-browser/QueryStatus.js +1 -163
  124. package/lib/module/react-query/components/query-browser/QueryStatusCount.js +1 -95
  125. package/lib/module/react-query/components/query-browser/StorageStatusCount.js +1 -56
  126. package/lib/module/react-query/components/query-browser/index.js +1 -22
  127. package/lib/module/react-query/components/query-browser/svgs.js +1 -64
  128. package/lib/module/react-query/hooks/useActionButtons.js +1 -46
  129. package/lib/module/react-query/hooks/useAllMutations.js +1 -82
  130. package/lib/module/react-query/hooks/useAllQueries.js +1 -114
  131. package/lib/module/react-query/hooks/useModalManager.js +1 -175
  132. package/lib/module/react-query/hooks/useModalPersistence.js +1 -67
  133. package/lib/module/react-query/hooks/useMutationActionButtons.js +1 -17
  134. package/lib/module/react-query/hooks/useQueryStatusCounts.js +1 -112
  135. package/lib/module/react-query/hooks/useReactQueryState.js +1 -20
  136. package/lib/module/react-query/hooks/useSelectedMutation.js +1 -27
  137. package/lib/module/react-query/hooks/useSelectedQuery.js +1 -92
  138. package/lib/module/react-query/hooks/useStorageQueryCounts.js +1 -25
  139. package/lib/module/react-query/hooks/useWifiState.js +1 -64
  140. package/lib/module/react-query/stores/reactQueryEventStore.js +1 -293
  141. package/lib/module/react-query/sync/dehydrate.js +1 -156
  142. package/lib/module/react-query/sync/reactQuerySyncAdapter.js +1 -589
  143. package/lib/module/react-query/sync/snapshotProvider.js +1 -284
  144. package/lib/module/react-query/sync/useReactQuerySyncAdapter.js +1 -31
  145. package/lib/module/react-query/types/types.js +1 -10
  146. package/lib/module/react-query/utils/actions/deleteItem.js +1 -19
  147. package/lib/module/react-query/utils/actions/emitDevToolsEvent.js +1 -36
  148. package/lib/module/react-query/utils/actions/invalidate.js +1 -11
  149. package/lib/module/react-query/utils/actions/refetch.js +1 -13
  150. package/lib/module/react-query/utils/actions/remove.js +1 -11
  151. package/lib/module/react-query/utils/actions/reset.js +1 -13
  152. package/lib/module/react-query/utils/actions/triggerError.js +1 -29
  153. package/lib/module/react-query/utils/actions/triggerLoading.js +1 -50
  154. package/lib/module/react-query/utils/deleteNestedDataByPath.js +1 -51
  155. package/lib/module/react-query/utils/getQueryStatusColor.js +1 -12
  156. package/lib/module/react-query/utils/getQueryStatusLabel.js +1 -19
  157. package/lib/module/react-query/utils/getStorageQueryCounts.js +1 -31
  158. package/lib/module/react-query/utils/modalStorageOperations.js +1 -117
  159. package/lib/module/react-query/utils/storageQueryUtils.js +1 -140
  160. package/lib/module/react-query/utils/testIDs.js +1 -54
  161. package/lib/module/react-query/utils/updateNestedDataByPath.js +1 -56
  162. package/lib/typescript/checkPeer.d.ts +1 -0
  163. package/lib/typescript/checkPeer.web.d.ts +2 -0
  164. package/lib/typescript/index.d.ts +1 -0
  165. package/lib/web/index.mjs +11 -0
  166. package/package.json +36 -12
  167. package/lib/typescript/index.d.ts.map +0 -1
  168. package/lib/typescript/preset.d.ts.map +0 -1
  169. package/lib/typescript/react-query/components/DataEditorMode.d.ts.map +0 -1
  170. package/lib/typescript/react-query/components/FilterStatusBadge.d.ts.map +0 -1
  171. package/lib/typescript/react-query/components/MutationBrowserMode.d.ts.map +0 -1
  172. package/lib/typescript/react-query/components/MutationEditorMode.d.ts.map +0 -1
  173. package/lib/typescript/react-query/components/QueryBrowserMode.d.ts.map +0 -1
  174. package/lib/typescript/react-query/components/QueryDebugInfo.d.ts.map +0 -1
  175. package/lib/typescript/react-query/components/QueryFilterViewV3.d.ts.map +0 -1
  176. package/lib/typescript/react-query/components/QuerySelector.d.ts.map +0 -1
  177. package/lib/typescript/react-query/components/ReactQueryDevToolsModal.d.ts.map +0 -1
  178. package/lib/typescript/react-query/components/ReactQuerySection.d.ts.map +0 -1
  179. package/lib/typescript/react-query/components/ReactQueryTracker.d.ts.map +0 -1
  180. package/lib/typescript/react-query/components/WifiToggle.d.ts.map +0 -1
  181. package/lib/typescript/react-query/components/modals/DataEditorModal.d.ts.map +0 -1
  182. package/lib/typescript/react-query/components/modals/MutationBrowserFooter.d.ts.map +0 -1
  183. package/lib/typescript/react-query/components/modals/MutationBrowserModal.d.ts.map +0 -1
  184. package/lib/typescript/react-query/components/modals/MutationEditorModal.d.ts.map +0 -1
  185. package/lib/typescript/react-query/components/modals/QueryBrowserFooter.d.ts.map +0 -1
  186. package/lib/typescript/react-query/components/modals/QueryBrowserModal.d.ts.map +0 -1
  187. package/lib/typescript/react-query/components/modals/ReactQueryModal.d.ts.map +0 -1
  188. package/lib/typescript/react-query/components/modals/ReactQueryModalHeader.d.ts.map +0 -1
  189. package/lib/typescript/react-query/components/modals/SwipeIndicator.d.ts.map +0 -1
  190. package/lib/typescript/react-query/components/query-browser/ActionButton.d.ts.map +0 -1
  191. package/lib/typescript/react-query/components/query-browser/ClearCacheButton.d.ts.map +0 -1
  192. package/lib/typescript/react-query/components/query-browser/Explorer.d.ts.map +0 -1
  193. package/lib/typescript/react-query/components/query-browser/MutationButton.d.ts.map +0 -1
  194. package/lib/typescript/react-query/components/query-browser/MutationDetails.d.ts.map +0 -1
  195. package/lib/typescript/react-query/components/query-browser/MutationDetailsChips.d.ts.map +0 -1
  196. package/lib/typescript/react-query/components/query-browser/MutationInformation.d.ts.map +0 -1
  197. package/lib/typescript/react-query/components/query-browser/MutationStatusCount.d.ts.map +0 -1
  198. package/lib/typescript/react-query/components/query-browser/MutationsList.d.ts.map +0 -1
  199. package/lib/typescript/react-query/components/query-browser/NetworkToggleButton.d.ts.map +0 -1
  200. package/lib/typescript/react-query/components/query-browser/QueryActions.d.ts.map +0 -1
  201. package/lib/typescript/react-query/components/query-browser/QueryBrowser.d.ts.map +0 -1
  202. package/lib/typescript/react-query/components/query-browser/QueryDetails.d.ts.map +0 -1
  203. package/lib/typescript/react-query/components/query-browser/QueryDetailsChip.d.ts.map +0 -1
  204. package/lib/typescript/react-query/components/query-browser/QueryInformation.d.ts.map +0 -1
  205. package/lib/typescript/react-query/components/query-browser/QueryRow.d.ts.map +0 -1
  206. package/lib/typescript/react-query/components/query-browser/QueryStatus.d.ts.map +0 -1
  207. package/lib/typescript/react-query/components/query-browser/QueryStatusCount.d.ts.map +0 -1
  208. package/lib/typescript/react-query/components/query-browser/StorageStatusCount.d.ts.map +0 -1
  209. package/lib/typescript/react-query/components/query-browser/index.d.ts.map +0 -1
  210. package/lib/typescript/react-query/components/query-browser/svgs.d.ts.map +0 -1
  211. package/lib/typescript/react-query/hooks/useActionButtons.d.ts.map +0 -1
  212. package/lib/typescript/react-query/hooks/useAllMutations.d.ts.map +0 -1
  213. package/lib/typescript/react-query/hooks/useAllQueries.d.ts.map +0 -1
  214. package/lib/typescript/react-query/hooks/useModalManager.d.ts.map +0 -1
  215. package/lib/typescript/react-query/hooks/useModalPersistence.d.ts.map +0 -1
  216. package/lib/typescript/react-query/hooks/useMutationActionButtons.d.ts.map +0 -1
  217. package/lib/typescript/react-query/hooks/useQueryStatusCounts.d.ts.map +0 -1
  218. package/lib/typescript/react-query/hooks/useReactQueryState.d.ts.map +0 -1
  219. package/lib/typescript/react-query/hooks/useSelectedMutation.d.ts.map +0 -1
  220. package/lib/typescript/react-query/hooks/useSelectedQuery.d.ts.map +0 -1
  221. package/lib/typescript/react-query/hooks/useStorageQueryCounts.d.ts.map +0 -1
  222. package/lib/typescript/react-query/hooks/useWifiState.d.ts.map +0 -1
  223. package/lib/typescript/react-query/stores/reactQueryEventStore.d.ts.map +0 -1
  224. package/lib/typescript/react-query/sync/dehydrate.d.ts.map +0 -1
  225. package/lib/typescript/react-query/sync/reactQuerySyncAdapter.d.ts.map +0 -1
  226. package/lib/typescript/react-query/sync/snapshotProvider.d.ts.map +0 -1
  227. package/lib/typescript/react-query/sync/useReactQuerySyncAdapter.d.ts.map +0 -1
  228. package/lib/typescript/react-query/types/types.d.ts.map +0 -1
  229. package/lib/typescript/react-query/utils/actions/deleteItem.d.ts.map +0 -1
  230. package/lib/typescript/react-query/utils/actions/emitDevToolsEvent.d.ts.map +0 -1
  231. package/lib/typescript/react-query/utils/actions/invalidate.d.ts.map +0 -1
  232. package/lib/typescript/react-query/utils/actions/refetch.d.ts.map +0 -1
  233. package/lib/typescript/react-query/utils/actions/remove.d.ts.map +0 -1
  234. package/lib/typescript/react-query/utils/actions/reset.d.ts.map +0 -1
  235. package/lib/typescript/react-query/utils/actions/triggerError.d.ts.map +0 -1
  236. package/lib/typescript/react-query/utils/actions/triggerLoading.d.ts.map +0 -1
  237. package/lib/typescript/react-query/utils/deleteNestedDataByPath.d.ts.map +0 -1
  238. package/lib/typescript/react-query/utils/getQueryStatusColor.d.ts.map +0 -1
  239. package/lib/typescript/react-query/utils/getQueryStatusLabel.d.ts.map +0 -1
  240. package/lib/typescript/react-query/utils/getStorageQueryCounts.d.ts.map +0 -1
  241. package/lib/typescript/react-query/utils/modalStorageOperations.d.ts.map +0 -1
  242. package/lib/typescript/react-query/utils/storageQueryUtils.d.ts.map +0 -1
  243. package/lib/typescript/react-query/utils/testIDs.d.ts.map +0 -1
  244. package/lib/typescript/react-query/utils/updateNestedDataByPath.d.ts.map +0 -1
@@ -1,224 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.QueryFilterViewV3 = QueryFilterViewV3;
7
- var _react = require("react");
8
- var _sharedUi = require("@buoy-gg/shared-ui");
9
- var _getQueryStatusLabel = require("../utils/getQueryStatusLabel");
10
- var _jsxRuntime = require("react/jsx-runtime");
11
- /**
12
- * Comprehensive filter control panel for React Query DevTools matching the Network DevTools
13
- * filter UI pattern. Provides status filtering and query key pattern-based filtering.
14
- */
15
- function QueryFilterViewV3({
16
- queries,
17
- activeFilter,
18
- onFilterChange,
19
- ignoredPatterns,
20
- onPatternToggle,
21
- includedPatterns,
22
- onIncludedPatternToggle
23
- }) {
24
- // Calculate status counts
25
- const statusCounts = (0, _react.useMemo)(() => {
26
- const counts = {
27
- all: queries.length,
28
- disabled: 0,
29
- fresh: 0,
30
- stale: 0,
31
- fetching: 0,
32
- paused: 0,
33
- inactive: 0,
34
- error: 0
35
- };
36
- queries.forEach(query => {
37
- // Count by the status LABEL (single source of truth) so the Error chip's
38
- // count matches exactly what the cards show and what the Error filter
39
- // returns. (Previously error was counted off `state.error`, a different
40
- // axis than the label, so the count, cards, and filter could disagree.)
41
- const status = (0, _getQueryStatusLabel.getQueryStatusLabel)(query);
42
- if (status === "disabled") counts.disabled++;else if (status === "error") counts.error++;else if (status === "fresh") counts.fresh++;else if (status === "stale") counts.stale++;else if (status === "fetching") counts.fetching++;else if (status === "paused") counts.paused++;else if (status === "inactive") counts.inactive++;
43
- });
44
- return counts;
45
- }, [queries]);
46
-
47
- // Extract available query keys (excluding numeric-only keys)
48
- const availableQueryKeys = (0, _react.useMemo)(() => {
49
- const keys = new Set();
50
- queries.forEach(query => {
51
- if (!query?.queryKey) return;
52
- const queryKeys = Array.isArray(query.queryKey) ? query.queryKey : [query.queryKey];
53
- queryKeys.forEach(key => {
54
- if (key != null) {
55
- const keyStr = String(key);
56
- // Skip if key is purely numeric (likely a dynamic ID)
57
- if (!/^\d+$/.test(keyStr)) {
58
- keys.add(keyStr);
59
- }
60
- }
61
- });
62
- });
63
- return Array.from(keys).sort().slice(0, 50); // Limit to 50
64
- }, [queries]);
65
-
66
- // Convert available query keys to suggestion items (just strings)
67
- const suggestionItems = (0, _react.useMemo)(() => {
68
- return availableQueryKeys;
69
- }, [availableQueryKeys]);
70
-
71
- // Calculate filtered query count based on active patterns
72
- const filteredCount = (0, _react.useMemo)(() => {
73
- let filtered = queries;
74
-
75
- // Apply included patterns filter
76
- if (includedPatterns.size > 0) {
77
- filtered = filtered.filter(query => {
78
- if (!query?.queryKey) return false;
79
- const keys = Array.isArray(query.queryKey) ? query.queryKey : [query.queryKey];
80
- const keyString = keys.filter(k => k != null).map(k => String(k)).join(" ").toLowerCase();
81
- return Array.from(includedPatterns).some(pattern => keyString.includes(pattern.toLowerCase()));
82
- });
83
- }
84
-
85
- // Apply ignored patterns filter
86
- if (ignoredPatterns.size > 0) {
87
- filtered = filtered.filter(query => {
88
- if (!query?.queryKey) return true;
89
- const keys = Array.isArray(query.queryKey) ? query.queryKey : [query.queryKey];
90
- const keyString = keys.filter(k => k != null).map(k => String(k)).join(" ").toLowerCase();
91
- return !Array.from(ignoredPatterns).some(pattern => keyString.includes(pattern.toLowerCase()));
92
- });
93
- }
94
- return filtered.length;
95
- }, [queries, includedPatterns, ignoredPatterns]);
96
-
97
- // Build the filter configuration
98
- const filterConfig = (0, _react.useMemo)(() => {
99
- return {
100
- filterSummarySection: {
101
- enabled: true,
102
- totalCount: queries.length,
103
- filteredCount: filteredCount,
104
- includePatterns: includedPatterns,
105
- excludePatterns: ignoredPatterns
106
- },
107
- sections: [
108
- // Status section - radio button style
109
- {
110
- id: "status",
111
- title: "Status",
112
- type: "status",
113
- data: [{
114
- id: "status::all",
115
- label: "All",
116
- count: statusCounts.all,
117
- icon: _sharedUi.Globe,
118
- color: _sharedUi.buoyColors.primary,
119
- isActive: !activeFilter || activeFilter === "all"
120
- }, {
121
- id: "status::disabled",
122
- label: "Disabled",
123
- count: statusCounts.disabled,
124
- icon: _sharedUi.XCircle,
125
- color: _sharedUi.buoyColors.textMuted,
126
- isActive: activeFilter === "disabled"
127
- }, {
128
- id: "status::fresh",
129
- label: "Fresh",
130
- count: statusCounts.fresh,
131
- icon: _sharedUi.Zap,
132
- color: _sharedUi.buoyColors.success,
133
- isActive: activeFilter === "fresh"
134
- }, {
135
- id: "status::stale",
136
- label: "Stale",
137
- count: statusCounts.stale,
138
- icon: _sharedUi.Clock,
139
- color: _sharedUi.buoyColors.warning,
140
- isActive: activeFilter === "stale"
141
- }, {
142
- id: "status::fetching",
143
- label: "Fetching",
144
- count: statusCounts.fetching,
145
- icon: _sharedUi.RefreshCw,
146
- color: _sharedUi.buoyColors.primary,
147
- isActive: activeFilter === "fetching"
148
- }, {
149
- id: "status::paused",
150
- label: "Paused",
151
- count: statusCounts.paused,
152
- icon: _sharedUi.Clock,
153
- color: _sharedUi.buoyColors.textMuted,
154
- isActive: activeFilter === "paused"
155
- }, {
156
- id: "status::inactive",
157
- label: "Inactive",
158
- count: statusCounts.inactive,
159
- icon: _sharedUi.Clock,
160
- color: _sharedUi.buoyColors.textSecondary,
161
- isActive: activeFilter === "inactive"
162
- }, {
163
- id: "status::error",
164
- label: "Error",
165
- count: statusCounts.error,
166
- icon: _sharedUi.XCircle,
167
- color: _sharedUi.buoyColors.error,
168
- isActive: activeFilter === "error"
169
- }]
170
- }],
171
- addFilterSection: {
172
- enabled: true,
173
- placeholder: "Enter pattern to exclude...",
174
- title: "EXCLUDE FILTERS",
175
- icon: _sharedUi.Filter
176
- },
177
- includeOnlySection: {
178
- enabled: true,
179
- title: "INCLUDE ONLY FILTERS",
180
- description: "Show ONLY queries matching these patterns. All non-matching queries will be hidden.",
181
- placeholder: "Enter pattern to include...",
182
- icon: _sharedUi.Eye,
183
- patterns: includedPatterns,
184
- onPatternToggle: onIncludedPatternToggle,
185
- onPatternAdd: onIncludedPatternToggle
186
- },
187
- availableItemsSection: {
188
- enabled: true,
189
- title: "AVAILABLE QUERY KEYS",
190
- emptyMessage: "No queries found. Query keys will appear here once queries are active.",
191
- items: suggestionItems
192
- },
193
- howItWorksSection: {
194
- enabled: true,
195
- title: "HOW QUERY FILTERS WORK",
196
- description: "There are two types of query key filters:",
197
- examples: ["", "INCLUDE ONLY (green):", "• Shows ONLY queries matching the pattern", "• Example: 'rewards' → shows only reward queries", "• When active, non-matching queries are hidden", "", "EXCLUDE (blue):", "• Hides queries matching the pattern", "• Example: 'analytics' → hides analytics queries", "", "Filters are case-insensitive and match partial keys."]
198
- },
199
- activePatterns: ignoredPatterns
200
- };
201
- }, [statusCounts, activeFilter, ignoredPatterns, includedPatterns, suggestionItems, onIncludedPatternToggle, queries.length, filteredCount]);
202
-
203
- // Handle filter item clicks
204
- const handleFilterSelect = itemId => {
205
- const [section, value] = itemId.split("::");
206
- if (section === "status") {
207
- // Status filters are mutually exclusive
208
- if (value === "all" || activeFilter === value) {
209
- onFilterChange(null);
210
- } else {
211
- onFilterChange(value);
212
- }
213
- } else if (section === "suggestion") {
214
- // Toggle pattern
215
- onPatternToggle(value);
216
- }
217
- };
218
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.DynamicFilterView, {
219
- ...filterConfig,
220
- onFilterChange: handleFilterSelect,
221
- onPatternToggle: onPatternToggle,
222
- onPatternAdd: onPatternToggle
223
- });
224
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.QueryFilterViewV3=QueryFilterViewV3;var _react=require("react");var _sharedUi=require("@buoy-gg/shared-ui");var _getQueryStatusLabel=require("../utils/getQueryStatusLabel");var _jsxRuntime=require("react/jsx-runtime");function QueryFilterViewV3({queries:o,activeFilter:i,onFilterChange:d,ignoredPatterns:a,onPatternToggle:c,includedPatterns:n,onIncludedPatternToggle:y}){const l=(0,_react.useMemo)(()=>{const e={all:o.length,disabled:0,fresh:0,stale:0,fetching:0,paused:0,inactive:0,error:0};o.forEach(t=>{const r=(0,_getQueryStatusLabel.getQueryStatusLabel)(t);if(r==="disabled")e.disabled++;else if(r==="error")e.error++;else if(r==="fresh")e.fresh++;else if(r==="stale")e.stale++;else if(r==="fetching")e.fetching++;else if(r==="paused")e.paused++;else if(r==="inactive")e.inactive++});return e},[o]);const f=(0,_react.useMemo)(()=>{const e=new Set;o.forEach(t=>{if(!t?.queryKey)return;const r=Array.isArray(t.queryKey)?t.queryKey:[t.queryKey];r.forEach(u=>{if(u!=null){const s=String(u);if(!/^\d+$/.test(s)){e.add(s)}}})});return Array.from(e).sort().slice(0,50)},[o]);const h=(0,_react.useMemo)(()=>{return f},[f]);const b=(0,_react.useMemo)(()=>{let e=o;if(n.size>0){e=e.filter(t=>{if(!t?.queryKey)return false;const r=Array.isArray(t.queryKey)?t.queryKey:[t.queryKey];const u=r.filter(s=>s!=null).map(s=>String(s)).join(" ").toLowerCase();return Array.from(n).some(s=>u.includes(s.toLowerCase()))})}if(a.size>0){e=e.filter(t=>{if(!t?.queryKey)return true;const r=Array.isArray(t.queryKey)?t.queryKey:[t.queryKey];const u=r.filter(s=>s!=null).map(s=>String(s)).join(" ").toLowerCase();return!Array.from(a).some(s=>u.includes(s.toLowerCase()))})}return e.length},[o,n,a]);const p=(0,_react.useMemo)(()=>{return{filterSummarySection:{enabled:true,totalCount:o.length,filteredCount:b,includePatterns:n,excludePatterns:a},sections:[{id:"status",title:"Status",type:"status",data:[{id:"status::all",label:"All",count:l.all,icon:_sharedUi.Globe,color:_sharedUi.buoyColors.primary,isActive:!i||i==="all"},{id:"status::disabled",label:"Disabled",count:l.disabled,icon:_sharedUi.XCircle,color:_sharedUi.buoyColors.textMuted,isActive:i==="disabled"},{id:"status::fresh",label:"Fresh",count:l.fresh,icon:_sharedUi.Zap,color:_sharedUi.buoyColors.success,isActive:i==="fresh"},{id:"status::stale",label:"Stale",count:l.stale,icon:_sharedUi.Clock,color:_sharedUi.buoyColors.warning,isActive:i==="stale"},{id:"status::fetching",label:"Fetching",count:l.fetching,icon:_sharedUi.RefreshCw,color:_sharedUi.buoyColors.primary,isActive:i==="fetching"},{id:"status::paused",label:"Paused",count:l.paused,icon:_sharedUi.Clock,color:_sharedUi.buoyColors.textMuted,isActive:i==="paused"},{id:"status::inactive",label:"Inactive",count:l.inactive,icon:_sharedUi.Clock,color:_sharedUi.buoyColors.textSecondary,isActive:i==="inactive"},{id:"status::error",label:"Error",count:l.error,icon:_sharedUi.XCircle,color:_sharedUi.buoyColors.error,isActive:i==="error"}]}],addFilterSection:{enabled:true,placeholder:"Enter pattern to exclude...",title:"EXCLUDE FILTERS",icon:_sharedUi.Filter},includeOnlySection:{enabled:true,title:"INCLUDE ONLY FILTERS",description:"Show ONLY queries matching these patterns. All non-matching queries will be hidden.",placeholder:"Enter pattern to include...",icon:_sharedUi.Eye,patterns:n,onPatternToggle:y,onPatternAdd:y},availableItemsSection:{enabled:true,title:"AVAILABLE QUERY KEYS",emptyMessage:"No queries found. Query keys will appear here once queries are active.",items:h},howItWorksSection:{enabled:true,title:"HOW QUERY FILTERS WORK",description:"There are two types of query key filters:",examples:["","INCLUDE ONLY (green):","\u2022 Shows ONLY queries matching the pattern","\u2022 Example: 'rewards' \u2192 shows only reward queries","\u2022 When active, non-matching queries are hidden","","EXCLUDE (blue):","\u2022 Hides queries matching the pattern","\u2022 Example: 'analytics' \u2192 hides analytics queries","","Filters are case-insensitive and match partial keys."]},activePatterns:a}},[l,i,a,n,h,y,o.length,b]);const m=e=>{const[t,r]=e.split("::");if(t==="status"){if(r==="all"||i===r){d(null)}else{d(r)}}else if(t==="suggestion"){c(r)}};return(0,_jsxRuntime.jsx)(_sharedUi.DynamicFilterView,{...p,onFilterChange:m,onPatternToggle:c,onPatternAdd:c})}
@@ -1,209 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.QuerySelector = QuerySelector;
7
- var _reactNative = require("react-native");
8
- var _getQueryStatusColor = require("../utils/getQueryStatusColor");
9
- var _QueryDebugInfo = require("./QueryDebugInfo");
10
- var _jsxRuntime = require("react/jsx-runtime");
11
- /**
12
- * Modal selector that lists all known queries, highlighting status and enabling the user to focus
13
- * a specific query within the dev tools experience.
14
- */
15
- function QuerySelector({
16
- queries,
17
- selectedQuery,
18
- isOpen,
19
- onClose,
20
- onSelect
21
- }) {
22
- const getQueryDisplayName = query => {
23
- return Array.isArray(query.queryKey) ? query.queryKey.join(" - ") : String(query.queryKey);
24
- };
25
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Modal, {
26
- accessibilityLabel: "Query selector",
27
- accessibilityHint: "View query selector",
28
- "sentry-label": "ignore query selector",
29
- visible: isOpen,
30
- transparent: true,
31
- animationType: "fade",
32
- onRequestClose: onClose,
33
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
34
- accessibilityLabel: "Query selector overlay",
35
- accessibilityHint: "View query selector overlay",
36
- "sentry-label": "ignore query selector overlay",
37
- style: styles.modalOverlay,
38
- onPress: onClose,
39
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
40
- accessibilityLabel: "Query selector content",
41
- accessibilityHint: "View query selector content",
42
- "sentry-label": "ignore query selector content",
43
- style: styles.modalContent,
44
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
45
- style: styles.modalHeader,
46
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
47
- style: styles.modalTitle,
48
- children: "Select Query"
49
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
50
- style: styles.modalSubtitle,
51
- children: [queries.length, " ", queries.length === 1 ? "query" : "queries", " ", "available"]
52
- })]
53
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
54
- accessibilityLabel: "Query selector scroll view",
55
- accessibilityHint: "View query selector scroll view",
56
- "sentry-label": "ignore query selector scroll view",
57
- style: styles.scrollView,
58
- contentContainerStyle: styles.scrollViewContent,
59
- showsVerticalScrollIndicator: true,
60
- children: queries.length === 0 ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
61
- style: styles.emptyState,
62
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
63
- style: styles.emptyTitle,
64
- children: "No Queries Found"
65
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
66
- style: styles.emptyDescription,
67
- children: ["No React Query queries are currently active.", "\n\n", "To see queries here:", "\n", "\u2022 Make API calls using useQuery", "\n", "\u2022 Ensure queries are within QueryClientProvider", "\n", "\u2022 Check console for debugging info"]
68
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_QueryDebugInfo.QueryDebugInfo, {})]
69
- }) : queries.map((query, index) => {
70
- const displayName = getQueryDisplayName(query);
71
- const statusColorName = (0, _getQueryStatusColor.getQueryStatusColor)({
72
- queryState: query.state,
73
- observerCount: query.getObserversCount(),
74
- isStale: query.isStale()
75
- });
76
-
77
- // Convert color names to hex colors
78
- const colorMap = {
79
- blue: "#3B82F6",
80
- gray: "#6B7280",
81
- purple: "#8B5CF6",
82
- yellow: "#F59E0B",
83
- green: "#10B981",
84
- red: "#EF4444"
85
- };
86
- const statusColor = colorMap[statusColorName] || "#6B7280";
87
- const isSelected = query === selectedQuery;
88
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
89
- accessibilityLabel: `Query ${displayName}`,
90
- accessibilityHint: `View query ${displayName}`,
91
- "sentry-label": `ignore query ${displayName}`,
92
- style: [styles.queryItem, isSelected && styles.selectedQueryItem],
93
- onPress: () => onSelect(query),
94
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
95
- style: [styles.statusDot, {
96
- backgroundColor: statusColor
97
- }]
98
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
99
- style: [styles.queryText, isSelected && styles.selectedQueryText],
100
- numberOfLines: 1,
101
- children: displayName
102
- })]
103
- }, `${query.queryHash}-${index}`);
104
- })
105
- })]
106
- })
107
- })
108
- });
109
- }
110
- const styles = _reactNative.StyleSheet.create({
111
- modalOverlay: {
112
- flex: 1,
113
- backgroundColor: "rgba(0, 0, 0, 0.5)",
114
- justifyContent: "center",
115
- alignItems: "center"
116
- },
117
- modalContent: {
118
- backgroundColor: "#1F1F1F",
119
- borderRadius: 8,
120
- width: "80%",
121
- maxHeight: "80%",
122
- minHeight: "50%",
123
- borderWidth: 1,
124
- borderColor: "rgba(255, 255, 255, 0.1)",
125
- flex: 0
126
- },
127
- modalHeader: {
128
- padding: 16,
129
- borderBottomWidth: 1,
130
- borderBottomColor: "rgba(255, 255, 255, 0.1)"
131
- },
132
- modalTitle: {
133
- color: "#FFFFFF",
134
- fontSize: 16,
135
- fontWeight: "600",
136
- marginBottom: 4
137
- },
138
- modalSubtitle: {
139
- color: "#9CA3AF",
140
- fontSize: 12
141
- },
142
- scrollView: {
143
- flex: 1
144
- },
145
- scrollViewContent: {
146
- padding: 8,
147
- flexGrow: 1
148
- },
149
- emptyState: {
150
- padding: 32,
151
- alignItems: "center",
152
- justifyContent: "center"
153
- },
154
- emptyTitle: {
155
- color: "#E5E7EB",
156
- fontSize: 16,
157
- fontWeight: "500",
158
- marginBottom: 8,
159
- textAlign: "center"
160
- },
161
- emptyDescription: {
162
- color: "#9CA3AF",
163
- fontSize: 14,
164
- textAlign: "center",
165
- lineHeight: 20
166
- },
167
- queryItem: {
168
- flexDirection: "row",
169
- alignItems: "center",
170
- padding: 8,
171
- borderRadius: 4
172
- },
173
- selectedQueryItem: {
174
- backgroundColor: "rgba(255, 255, 255, 0.1)"
175
- },
176
- statusDot: {
177
- width: 8,
178
- height: 8,
179
- borderRadius: 4,
180
- marginRight: 8
181
- },
182
- queryText: {
183
- color: "#E5E7EB",
184
- fontSize: 14,
185
- flex: 1
186
- },
187
- selectedQueryText: {
188
- color: "#FFFFFF",
189
- fontWeight: "500"
190
- },
191
- trigger: {
192
- flexDirection: "row",
193
- alignItems: "center",
194
- backgroundColor: "rgba(255, 255, 255, 0.05)",
195
- borderRadius: 4,
196
- paddingHorizontal: 8,
197
- paddingVertical: 6,
198
- borderWidth: 1,
199
- borderColor: "rgba(255, 255, 255, 0.1)",
200
- minWidth: 120,
201
- maxWidth: 200
202
- },
203
- triggerText: {
204
- color: "#E5E7EB",
205
- fontSize: 12,
206
- flex: 1,
207
- marginHorizontal: 6
208
- }
209
- });
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.QuerySelector=QuerySelector;var _reactNative=require("react-native");var _getQueryStatusColor=require("../utils/getQueryStatusColor");var _QueryDebugInfo=require("./QueryDebugInfo");var _jsxRuntime=require("react/jsx-runtime");function QuerySelector({queries:t,selectedQuery:i,isOpen:s,onClose:l,onSelect:n}){const a=e=>{return Array.isArray(e.queryKey)?e.queryKey.join(" - "):String(e.queryKey)};return(0,_jsxRuntime.jsx)(_reactNative.Modal,{accessibilityLabel:"Query selector",accessibilityHint:"View query selector","sentry-label":"ignore query selector",visible:s,transparent:true,animationType:"fade",onRequestClose:l,children:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityLabel:"Query selector overlay",accessibilityHint:"View query selector overlay","sentry-label":"ignore query selector overlay",style:styles.modalOverlay,onPress:l,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{accessibilityLabel:"Query selector content",accessibilityHint:"View query selector content","sentry-label":"ignore query selector content",style:styles.modalContent,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.modalHeader,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalTitle,children:"Select Query"}),(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.modalSubtitle,children:[t.length," ",t.length===1?"query":"queries"," ","available"]})]}),(0,_jsxRuntime.jsx)(_reactNative.ScrollView,{accessibilityLabel:"Query selector scroll view",accessibilityHint:"View query selector scroll view","sentry-label":"ignore query selector scroll view",style:styles.scrollView,contentContainerStyle:styles.scrollViewContent,showsVerticalScrollIndicator:true,children:t.length===0?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.emptyState,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.emptyTitle,children:"No Queries Found"}),(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.emptyDescription,children:["No React Query queries are currently active.","\n\n","To see queries here:","\n","\u2022 Make API calls using useQuery","\n","\u2022 Ensure queries are within QueryClientProvider","\n","\u2022 Check console for debugging info"]}),(0,_jsxRuntime.jsx)(_QueryDebugInfo.QueryDebugInfo,{})]}):t.map((e,c)=>{const r=a(e);const u=(0,_getQueryStatusColor.getQueryStatusColor)({queryState:e.state,observerCount:e.getObserversCount(),isStale:e.isStale()});const y={blue:"#3B82F6",gray:"#6B7280",purple:"#8B5CF6",yellow:"#F59E0B",green:"#10B981",red:"#EF4444"};const d=y[u]||"#6B7280";const o=e===i;return(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{accessibilityLabel:`Query ${r}`,accessibilityHint:`View query ${r}`,"sentry-label":`ignore query ${r}`,style:[styles.queryItem,o&&styles.selectedQueryItem],onPress:()=>n(e),children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.statusDot,{backgroundColor:d}]}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.queryText,o&&styles.selectedQueryText],numberOfLines:1,children:r})]},`${e.queryHash}-${c}`)})})]})})})}const styles=_reactNative.StyleSheet.create({modalOverlay:{flex:1,backgroundColor:"rgba(0, 0, 0, 0.5)",justifyContent:"center",alignItems:"center"},modalContent:{backgroundColor:"#1F1F1F",borderRadius:8,width:"80%",maxHeight:"80%",minHeight:"50%",borderWidth:1,borderColor:"rgba(255, 255, 255, 0.1)",flex:0},modalHeader:{padding:16,borderBottomWidth:1,borderBottomColor:"rgba(255, 255, 255, 0.1)"},modalTitle:{color:"#FFFFFF",fontSize:16,fontWeight:"600",marginBottom:4},modalSubtitle:{color:"#9CA3AF",fontSize:12},scrollView:{flex:1},scrollViewContent:{padding:8,flexGrow:1},emptyState:{padding:32,alignItems:"center",justifyContent:"center"},emptyTitle:{color:"#E5E7EB",fontSize:16,fontWeight:"500",marginBottom:8,textAlign:"center"},emptyDescription:{color:"#9CA3AF",fontSize:14,textAlign:"center",lineHeight:20},queryItem:{flexDirection:"row",alignItems:"center",padding:8,borderRadius:4},selectedQueryItem:{backgroundColor:"rgba(255, 255, 255, 0.1)"},statusDot:{width:8,height:8,borderRadius:4,marginRight:8},queryText:{color:"#E5E7EB",fontSize:14,flex:1},selectedQueryText:{color:"#FFFFFF",fontWeight:"500"},trigger:{flexDirection:"row",alignItems:"center",backgroundColor:"rgba(255, 255, 255, 0.05)",borderRadius:4,paddingHorizontal:8,paddingVertical:6,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.1)",minWidth:120,maxWidth:200},triggerText:{color:"#E5E7EB",fontSize:12,flex:1,marginHorizontal:6}});
@@ -1,91 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ReactQueryDevToolsModal = ReactQueryDevToolsModal;
7
- var _react = require("react");
8
- var _reactQuery = require("@tanstack/react-query");
9
- var _sharedUi = require("@buoy-gg/shared-ui");
10
- var _ReactQueryModal = require("./modals/ReactQueryModal");
11
- var _reactQueryEventStore = require("../stores/reactQueryEventStore");
12
- var _jsxRuntime = require("react/jsx-runtime");
13
- /** Configuration options for the high-level React Query dev tools modal wrapper. */
14
-
15
- /**
16
- * Opinionated wrapper around `ReactQueryModal` that manages selection state and filters so
17
- * consumers can drop in the full dev tools experience with a single component.
18
- */
19
- function ReactQueryDevToolsModal({
20
- visible,
21
- onClose,
22
- onMinimize,
23
- enableSharedModalDimensions = true
24
- }) {
25
- // Get QueryClient and connect to event store for unified Events DevTools
26
- const queryClient = (0, _reactQuery.useQueryClient)();
27
- (0, _react.useEffect)(() => {
28
- // Connect the QueryClient to the event store so events flow to unified Events DevTools
29
- // Only connect if not already connected (to preserve connection across modal open/close)
30
- if (!_reactQueryEventStore.reactQueryEventStore.isConnected()) {
31
- _reactQueryEventStore.reactQueryEventStore.setQueryClient(queryClient);
32
- }
33
- // Don't disconnect on unmount - keep the connection for unified Events DevTools
34
- }, [queryClient]);
35
- const [selectedQueryKey, setSelectedQueryKey] = (0, _react.useState)(undefined);
36
- const [selectedMutationId, setSelectedMutationId] = (0, _react.useState)(undefined);
37
- const [activeFilter, setActiveFilter] = (0, _react.useState)(null);
38
- const [activeTab, setActiveTab] = (0, _react.useState)("queries");
39
- const [searchText, setSearchText] = (0, _react.useState)("");
40
- const resetState = (0, _react.useCallback)(() => {
41
- setSelectedQueryKey(undefined);
42
- setSelectedMutationId(undefined);
43
- setActiveFilter(null);
44
- setActiveTab("queries");
45
- setSearchText("");
46
- }, []);
47
- const handleClose = (0, _react.useCallback)(() => {
48
- resetState();
49
- onClose();
50
- }, [onClose, resetState]);
51
- const handleQuerySelect = (0, _react.useCallback)(query => {
52
- setSelectedQueryKey(query?.queryKey);
53
- }, []);
54
- const handleMutationSelect = (0, _react.useCallback)(mutation => {
55
- setSelectedMutationId(mutation?.mutationId);
56
- }, []);
57
- const handleFilterChange = (0, _react.useCallback)(filter => {
58
- setActiveFilter(filter);
59
- }, []);
60
- const handleTabChange = (0, _react.useCallback)(tab => {
61
- setActiveTab(tab);
62
- setActiveFilter(null);
63
- setSelectedQueryKey(undefined);
64
- setSelectedMutationId(undefined);
65
- setSearchText("");
66
- }, []);
67
- const handleSearchChange = (0, _react.useCallback)(text => {
68
- setSearchText(text);
69
- }, []);
70
- if (!visible) {
71
- return null;
72
- }
73
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.TickProvider, {
74
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ReactQueryModal.ReactQueryModal, {
75
- visible: visible,
76
- selectedQueryKey: selectedQueryKey,
77
- selectedMutationId: selectedMutationId,
78
- onQuerySelect: handleQuerySelect,
79
- onMutationSelect: handleMutationSelect,
80
- onClose: handleClose,
81
- onMinimize: onMinimize,
82
- activeFilter: activeFilter,
83
- onFilterChange: handleFilterChange,
84
- activeTab: activeTab,
85
- onTabChange: handleTabChange,
86
- searchText: searchText,
87
- onSearchChange: handleSearchChange,
88
- enableSharedModalDimensions: enableSharedModalDimensions
89
- })
90
- });
91
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ReactQueryDevToolsModal=ReactQueryDevToolsModal;var _react=require("react");var _reactQuery=require("@tanstack/react-query");var _sharedUi=require("@buoy-gg/shared-ui");var _ReactQueryModal=require("./modals/ReactQueryModal");var _reactQueryEventStore=require("../stores/reactQueryEventStore");var _jsxRuntime=require("react/jsx-runtime");function ReactQueryDevToolsModal({visible:u,onClose:c,onMinimize:o,enableSharedModalDimensions:d=true}){const s=(0,_reactQuery.useQueryClient)();(0,_react.useEffect)(()=>{if(!_reactQueryEventStore.reactQueryEventStore.isConnected()){_reactQueryEventStore.reactQueryEventStore.setQueryClient(s)}},[s]);const[y,t]=(0,_react.useState)(void 0);const[h,a]=(0,_react.useState)(void 0);const[v,r]=(0,_react.useState)(null);const[S,l]=(0,_react.useState)("queries");const[C,n]=(0,_react.useState)("");const i=(0,_react.useCallback)(()=>{t(void 0);a(void 0);r(null);l("queries");n("")},[]);const Q=(0,_react.useCallback)(()=>{i();c()},[c,i]);const b=(0,_react.useCallback)(e=>{t(e?.queryKey)},[]);const M=(0,_react.useCallback)(e=>{a(e?.mutationId)},[]);const f=(0,_react.useCallback)(e=>{r(e)},[]);const q=(0,_react.useCallback)(e=>{l(e);r(null);t(void 0);a(void 0);n("")},[]);const T=(0,_react.useCallback)(e=>{n(e)},[]);if(!u){return null}return(0,_jsxRuntime.jsx)(_sharedUi.TickProvider,{children:(0,_jsxRuntime.jsx)(_ReactQueryModal.ReactQueryModal,{visible:u,selectedQueryKey:y,selectedMutationId:h,onQuerySelect:b,onMutationSelect:M,onClose:Q,onMinimize:o,activeFilter:v,onFilterChange:f,activeTab:S,onTabChange:q,searchText:C,onSearchChange:T,enableSharedModalDimensions:d})})}
@@ -1,47 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ReactQuerySection = ReactQuerySection;
7
- var _reactNative = require("react-native");
8
- var _sharedUi = require("@buoy-gg/shared-ui");
9
- var _svgs = require("./query-browser/svgs");
10
- var _jsxRuntime = require("react/jsx-runtime");
11
- // Component definition moved outside render to prevent recreation on every render
12
- const TanstackIcon = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
13
- style: {
14
- width: 24,
15
- height: 24
16
- },
17
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_svgs.TanstackLogo, {})
18
- });
19
-
20
- /**
21
- * React Query section component following composition principles.
22
- * Encapsulates React Query specific business logic and UI.
23
- */
24
- function ReactQuerySection({
25
- onPress,
26
- getReactBuoySubtitle
27
- }) {
28
- // Format subtitle to be shorter: "45 queries • 10 mutations" → "45Q • 10M"
29
- const formatSubtitle = () => {
30
- const full = getReactBuoySubtitle();
31
- const match = full.match(/(\d+) queries • (\d+) mutations/);
32
- if (match) {
33
- return `${match[1]}Q • ${match[2]}M`;
34
- }
35
- return "No data";
36
- };
37
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.CyberpunkSectionButton, {
38
- id: "react-buoy-dev-tools",
39
- title: "QUERY",
40
- subtitle: formatSubtitle(),
41
- icon: TanstackIcon,
42
- iconColor: _sharedUi.buoyColors.error,
43
- iconBackgroundColor: _sharedUi.buoyColors.error + "1A",
44
- onPress: onPress,
45
- index: 1
46
- });
47
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ReactQuerySection=ReactQuerySection;var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _svgs=require("./query-browser/svgs");var _jsxRuntime=require("react/jsx-runtime");const TanstackIcon=()=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:{width:24,height:24},children:(0,_jsxRuntime.jsx)(_svgs.TanstackLogo,{})});function ReactQuerySection({onPress:r,getReactBuoySubtitle:t}){const o=()=>{const s=t();const e=s.match(/(\d+) queries • (\d+) mutations/);if(e){return`${e[1]}Q \u2022 ${e[2]}M`}return"No data"};return(0,_jsxRuntime.jsx)(_sharedUi.CyberpunkSectionButton,{id:"react-buoy-dev-tools",title:"QUERY",subtitle:o(),icon:TanstackIcon,iconColor:_sharedUi.buoyColors.error,iconBackgroundColor:_sharedUi.buoyColors.error+"1A",onPress:r,index:1})}
@@ -1,38 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ReactQueryTracker = ReactQueryTracker;
7
- var _react = require("react");
8
- var _reactQuery = require("@tanstack/react-query");
9
- var _reactQueryEventStore = require("../stores/reactQueryEventStore");
10
- /**
11
- * Connects the React Query event store to the app's QueryClient at startup.
12
- *
13
- * Auto-rendered by `FloatingDevTools` (the same treatment `RouteTracker` gets),
14
- * so nobody has to mount it by hand.
15
- *
16
- * Why it has to exist: until this, `setQueryClient` was called from exactly one
17
- * place — `ReactQueryDevToolsModal`'s mount effect — which meant the store had
18
- * no client unless somebody opened the React Query TOOL. Anything else that
19
- * consumes these events was therefore silently empty, and the Events timeline
20
- * showed a React Query badge with a confident `0` on it: not "nothing to
21
- * report" but "nobody was listening", and no way to tell the two apart.
22
- *
23
- * `useContext(QueryClientContext)`, NOT `useQueryClient()`: the hook throws
24
- * when there is no provider above it, and this component is mounted whether or
25
- * not the host app uses React Query at all. An app without a provider just
26
- * reads `undefined` here and nothing connects, which is the old behaviour.
27
- */
28
- function ReactQueryTracker() {
29
- const queryClient = (0, _react.useContext)(_reactQuery.QueryClientContext);
30
- (0, _react.useEffect)(() => {
31
- if (!queryClient) return;
32
- // The tool connects the same client when it opens; leave that alone rather
33
- // than tearing down its cache subscriptions and rebuilding them.
34
- if (_reactQueryEventStore.reactQueryEventStore.isConnected()) return;
35
- _reactQueryEventStore.reactQueryEventStore.setQueryClient(queryClient);
36
- }, [queryClient]);
37
- return null;
38
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ReactQueryTracker=ReactQueryTracker;var _react=require("react");var _reactQuery=require("@tanstack/react-query");var _reactQueryEventStore=require("../stores/reactQueryEventStore");function ReactQueryTracker(){const e=(0,_react.useContext)(_reactQuery.QueryClientContext);(0,_react.useEffect)(()=>{if(!e)return;if(_reactQueryEventStore.reactQueryEventStore.isConnected())return;_reactQueryEventStore.reactQueryEventStore.setQueryClient(e)},[e]);return null}