@buoy-gg/react-query 7.0.41 → 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 (243) hide show
  1. package/README.md +11 -73
  2. package/lib/commonjs/checkPeer.js +1 -8
  3. package/lib/commonjs/checkPeer.web.js +1 -3
  4. package/lib/commonjs/index.js +1 -657
  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 -8
  83. package/lib/module/checkPeer.web.js +1 -3
  84. package/lib/module/index.js +1 -130
  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/web/index.mjs +3 -4
  163. package/package.json +3 -3
  164. package/lib/typescript/checkPeer.d.ts.map +0 -1
  165. package/lib/typescript/checkPeer.web.d.ts.map +0 -1
  166. package/lib/typescript/index.d.ts.map +0 -1
  167. package/lib/typescript/preset.d.ts.map +0 -1
  168. package/lib/typescript/react-query/components/DataEditorMode.d.ts.map +0 -1
  169. package/lib/typescript/react-query/components/FilterStatusBadge.d.ts.map +0 -1
  170. package/lib/typescript/react-query/components/MutationBrowserMode.d.ts.map +0 -1
  171. package/lib/typescript/react-query/components/MutationEditorMode.d.ts.map +0 -1
  172. package/lib/typescript/react-query/components/QueryBrowserMode.d.ts.map +0 -1
  173. package/lib/typescript/react-query/components/QueryDebugInfo.d.ts.map +0 -1
  174. package/lib/typescript/react-query/components/QueryFilterViewV3.d.ts.map +0 -1
  175. package/lib/typescript/react-query/components/QuerySelector.d.ts.map +0 -1
  176. package/lib/typescript/react-query/components/ReactQueryDevToolsModal.d.ts.map +0 -1
  177. package/lib/typescript/react-query/components/ReactQuerySection.d.ts.map +0 -1
  178. package/lib/typescript/react-query/components/ReactQueryTracker.d.ts.map +0 -1
  179. package/lib/typescript/react-query/components/WifiToggle.d.ts.map +0 -1
  180. package/lib/typescript/react-query/components/modals/DataEditorModal.d.ts.map +0 -1
  181. package/lib/typescript/react-query/components/modals/MutationBrowserFooter.d.ts.map +0 -1
  182. package/lib/typescript/react-query/components/modals/MutationBrowserModal.d.ts.map +0 -1
  183. package/lib/typescript/react-query/components/modals/MutationEditorModal.d.ts.map +0 -1
  184. package/lib/typescript/react-query/components/modals/QueryBrowserFooter.d.ts.map +0 -1
  185. package/lib/typescript/react-query/components/modals/QueryBrowserModal.d.ts.map +0 -1
  186. package/lib/typescript/react-query/components/modals/ReactQueryModal.d.ts.map +0 -1
  187. package/lib/typescript/react-query/components/modals/ReactQueryModalHeader.d.ts.map +0 -1
  188. package/lib/typescript/react-query/components/modals/SwipeIndicator.d.ts.map +0 -1
  189. package/lib/typescript/react-query/components/query-browser/ActionButton.d.ts.map +0 -1
  190. package/lib/typescript/react-query/components/query-browser/ClearCacheButton.d.ts.map +0 -1
  191. package/lib/typescript/react-query/components/query-browser/Explorer.d.ts.map +0 -1
  192. package/lib/typescript/react-query/components/query-browser/MutationButton.d.ts.map +0 -1
  193. package/lib/typescript/react-query/components/query-browser/MutationDetails.d.ts.map +0 -1
  194. package/lib/typescript/react-query/components/query-browser/MutationDetailsChips.d.ts.map +0 -1
  195. package/lib/typescript/react-query/components/query-browser/MutationInformation.d.ts.map +0 -1
  196. package/lib/typescript/react-query/components/query-browser/MutationStatusCount.d.ts.map +0 -1
  197. package/lib/typescript/react-query/components/query-browser/MutationsList.d.ts.map +0 -1
  198. package/lib/typescript/react-query/components/query-browser/NetworkToggleButton.d.ts.map +0 -1
  199. package/lib/typescript/react-query/components/query-browser/QueryActions.d.ts.map +0 -1
  200. package/lib/typescript/react-query/components/query-browser/QueryBrowser.d.ts.map +0 -1
  201. package/lib/typescript/react-query/components/query-browser/QueryDetails.d.ts.map +0 -1
  202. package/lib/typescript/react-query/components/query-browser/QueryDetailsChip.d.ts.map +0 -1
  203. package/lib/typescript/react-query/components/query-browser/QueryInformation.d.ts.map +0 -1
  204. package/lib/typescript/react-query/components/query-browser/QueryRow.d.ts.map +0 -1
  205. package/lib/typescript/react-query/components/query-browser/QueryStatus.d.ts.map +0 -1
  206. package/lib/typescript/react-query/components/query-browser/QueryStatusCount.d.ts.map +0 -1
  207. package/lib/typescript/react-query/components/query-browser/StorageStatusCount.d.ts.map +0 -1
  208. package/lib/typescript/react-query/components/query-browser/index.d.ts.map +0 -1
  209. package/lib/typescript/react-query/components/query-browser/svgs.d.ts.map +0 -1
  210. package/lib/typescript/react-query/hooks/useActionButtons.d.ts.map +0 -1
  211. package/lib/typescript/react-query/hooks/useAllMutations.d.ts.map +0 -1
  212. package/lib/typescript/react-query/hooks/useAllQueries.d.ts.map +0 -1
  213. package/lib/typescript/react-query/hooks/useModalManager.d.ts.map +0 -1
  214. package/lib/typescript/react-query/hooks/useModalPersistence.d.ts.map +0 -1
  215. package/lib/typescript/react-query/hooks/useMutationActionButtons.d.ts.map +0 -1
  216. package/lib/typescript/react-query/hooks/useQueryStatusCounts.d.ts.map +0 -1
  217. package/lib/typescript/react-query/hooks/useReactQueryState.d.ts.map +0 -1
  218. package/lib/typescript/react-query/hooks/useSelectedMutation.d.ts.map +0 -1
  219. package/lib/typescript/react-query/hooks/useSelectedQuery.d.ts.map +0 -1
  220. package/lib/typescript/react-query/hooks/useStorageQueryCounts.d.ts.map +0 -1
  221. package/lib/typescript/react-query/hooks/useWifiState.d.ts.map +0 -1
  222. package/lib/typescript/react-query/stores/reactQueryEventStore.d.ts.map +0 -1
  223. package/lib/typescript/react-query/sync/dehydrate.d.ts.map +0 -1
  224. package/lib/typescript/react-query/sync/reactQuerySyncAdapter.d.ts.map +0 -1
  225. package/lib/typescript/react-query/sync/snapshotProvider.d.ts.map +0 -1
  226. package/lib/typescript/react-query/sync/useReactQuerySyncAdapter.d.ts.map +0 -1
  227. package/lib/typescript/react-query/types/types.d.ts.map +0 -1
  228. package/lib/typescript/react-query/utils/actions/deleteItem.d.ts.map +0 -1
  229. package/lib/typescript/react-query/utils/actions/emitDevToolsEvent.d.ts.map +0 -1
  230. package/lib/typescript/react-query/utils/actions/invalidate.d.ts.map +0 -1
  231. package/lib/typescript/react-query/utils/actions/refetch.d.ts.map +0 -1
  232. package/lib/typescript/react-query/utils/actions/remove.d.ts.map +0 -1
  233. package/lib/typescript/react-query/utils/actions/reset.d.ts.map +0 -1
  234. package/lib/typescript/react-query/utils/actions/triggerError.d.ts.map +0 -1
  235. package/lib/typescript/react-query/utils/actions/triggerLoading.d.ts.map +0 -1
  236. package/lib/typescript/react-query/utils/deleteNestedDataByPath.d.ts.map +0 -1
  237. package/lib/typescript/react-query/utils/getQueryStatusColor.d.ts.map +0 -1
  238. package/lib/typescript/react-query/utils/getQueryStatusLabel.d.ts.map +0 -1
  239. package/lib/typescript/react-query/utils/getStorageQueryCounts.d.ts.map +0 -1
  240. package/lib/typescript/react-query/utils/modalStorageOperations.d.ts.map +0 -1
  241. package/lib/typescript/react-query/utils/storageQueryUtils.d.ts.map +0 -1
  242. package/lib/typescript/react-query/utils/testIDs.d.ts.map +0 -1
  243. package/lib/typescript/react-query/utils/updateNestedDataByPath.d.ts.map +0 -1
@@ -1,254 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.QueryBrowserModal = QueryBrowserModal;
7
- var _reactQuery = require("@tanstack/react-query");
8
- var _sharedUi = require("@buoy-gg/shared-ui");
9
- var _useSelectedQuery = require("../../hooks/useSelectedQuery");
10
- var _ReactQueryModalHeader = require("./ReactQueryModalHeader");
11
- var _QueryBrowserMode = require("../QueryBrowserMode");
12
- var _QueryBrowserFooter = require("./QueryBrowserFooter");
13
- var _QueryFilterViewV = require("../QueryFilterViewV3");
14
- var _react = require("react");
15
- var _reactNative = require("react-native");
16
- var _useAllQueries = _interopRequireDefault(require("../../hooks/useAllQueries"));
17
- var _jsxRuntime = require("react/jsx-runtime");
18
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
- /**
20
- * Specialized modal for query browsing following "Decompose by Responsibility"
21
- * Single purpose: Display query browser when no query is selected
22
- */
23
- function QueryBrowserModal({
24
- visible,
25
- selectedQueryKey,
26
- onQuerySelect,
27
- onClose,
28
- onMinimize,
29
- activeFilter: externalActiveFilter,
30
- onFilterChange: externalOnFilterChange,
31
- enableSharedModalDimensions = false,
32
- onTabChange,
33
- searchText = "",
34
- onSearchChange
35
- }) {
36
- const queryClient = (0, _reactQuery.useQueryClient)();
37
- const selectedQuery = (0, _useSelectedQuery.useGetQueryByQueryKey)(selectedQueryKey);
38
- const allQueries = (0, _useAllQueries.default)();
39
-
40
- // Clear query cache handler
41
- const handleClearCache = (0, _react.useCallback)(() => {
42
- queryClient.getQueryCache().clear();
43
- }, [queryClient]);
44
-
45
- // Use external filter state if provided (for persistence), otherwise use internal state
46
- const [internalActiveFilter, setInternalActiveFilter] = (0, _react.useState)(null);
47
- const activeFilter = externalActiveFilter ?? internalActiveFilter;
48
- const setActiveFilter = externalOnFilterChange ?? setInternalActiveFilter;
49
-
50
- // Filter modal state
51
- const [showFilterView, setShowFilterView] = (0, _react.useState)(false);
52
- const [ignoredPatterns, setIgnoredPatterns] = (0, _react.useState)(new Set());
53
- const [includedPatterns, setIncludedPatterns] = (0, _react.useState)(new Set());
54
-
55
- // Load ignored patterns from storage on mount
56
- (0, _react.useEffect)(() => {
57
- const loadFilters = async () => {
58
- try {
59
- const stored = await _sharedUi.persistentStorage.getItem(_sharedUi.devToolsStorageKeys.reactQuery.ignoredPatterns());
60
- if (stored) {
61
- const patterns = JSON.parse(stored);
62
- if (Array.isArray(patterns)) {
63
- setIgnoredPatterns(new Set(patterns));
64
- }
65
- }
66
- } catch (error) {
67
- console.error("Failed to load ignored patterns:", error);
68
- }
69
- };
70
- loadFilters();
71
- }, []);
72
-
73
- // Load included patterns from storage on mount
74
- (0, _react.useEffect)(() => {
75
- const loadFilters = async () => {
76
- try {
77
- const stored = await _sharedUi.persistentStorage.getItem(_sharedUi.devToolsStorageKeys.reactQuery.includedPatterns());
78
- if (stored) {
79
- const patterns = JSON.parse(stored);
80
- if (Array.isArray(patterns)) {
81
- setIncludedPatterns(new Set(patterns));
82
- }
83
- }
84
- } catch (error) {
85
- console.error("Failed to load included patterns:", error);
86
- }
87
- };
88
- loadFilters();
89
- }, []);
90
-
91
- // Save ignored patterns to storage when they change
92
- (0, _react.useEffect)(() => {
93
- const saveFilters = async () => {
94
- try {
95
- const patterns = Array.from(ignoredPatterns);
96
- await _sharedUi.persistentStorage.setItem(_sharedUi.devToolsStorageKeys.reactQuery.ignoredPatterns(), JSON.stringify(patterns));
97
- } catch (error) {
98
- console.error("Failed to save ignored patterns:", error);
99
- }
100
- };
101
- saveFilters();
102
- }, [ignoredPatterns]);
103
-
104
- // Save included patterns to storage when they change
105
- (0, _react.useEffect)(() => {
106
- const saveFilters = async () => {
107
- try {
108
- const patterns = Array.from(includedPatterns);
109
- await _sharedUi.persistentStorage.setItem(_sharedUi.devToolsStorageKeys.reactQuery.includedPatterns(), JSON.stringify(patterns));
110
- } catch (error) {
111
- console.error("Failed to save included patterns:", error);
112
- }
113
- };
114
- saveFilters();
115
- }, [includedPatterns]);
116
-
117
- // Toggle pattern in ignored set
118
- const handlePatternToggle = (0, _react.useCallback)(pattern => {
119
- setIgnoredPatterns(prev => {
120
- const newSet = new Set(prev);
121
- if (newSet.has(pattern)) {
122
- newSet.delete(pattern);
123
- } else {
124
- newSet.add(pattern);
125
- }
126
- return newSet;
127
- });
128
- }, []);
129
-
130
- // Toggle pattern in included set
131
- const handleIncludedPatternToggle = (0, _react.useCallback)(pattern => {
132
- setIncludedPatterns(prev => {
133
- const newSet = new Set(prev);
134
- if (newSet.has(pattern)) {
135
- newSet.delete(pattern);
136
- } else {
137
- newSet.add(pattern);
138
- }
139
- return newSet;
140
- });
141
- }, []);
142
-
143
- // Track modal mode for conditional styling
144
- const [modalMode, setModalMode] = (0, _react.useState)("bottomSheet");
145
- const storagePrefix = enableSharedModalDimensions ? _sharedUi.devToolsStorageKeys.reactQuery.modal() : _sharedUi.devToolsStorageKeys.reactQuery.browserModal();
146
- const handleModeChange = (0, _react.useCallback)(mode => {
147
- setModalMode(mode);
148
- }, []);
149
-
150
- // JsModal overlays the footer on the content and only reserves `footerHeight`
151
- // of padding beneath it. QueryBrowserFooter grows by the safe-area inset when
152
- // docked, so the reserve must track that or the list bottom hides behind the
153
- // footer.
154
- const insets = (0, _sharedUi.useSafeAreaInsets)({
155
- minBottom: 16
156
- });
157
- const footerHeight = modalMode === "floating" ? 56 : 48 + insets.bottom;
158
- if (!visible) return null;
159
- const renderHeaderContent = () => {
160
- // Filter view header with back button
161
- if (showFilterView) {
162
- const tabs = [{
163
- key: "filters",
164
- label: "Filters"
165
- }];
166
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader, {
167
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation, {
168
- onBack: () => setShowFilterView(false)
169
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
170
- title: "",
171
- noMargin: true,
172
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.TabSelector, {
173
- tabs: tabs,
174
- activeTab: "filters",
175
- testIDPrefix: "buoy-rq-filterview-tab",
176
- onTabChange: () => {}
177
- })
178
- })]
179
- });
180
- }
181
-
182
- // Normal query browser header
183
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ReactQueryModalHeader.ReactQueryModalHeader, {
184
- selectedQuery: selectedQuery,
185
- activeTab: "queries",
186
- onTabChange: onTabChange,
187
- onBack: () => onQuerySelect(undefined),
188
- searchText: searchText,
189
- onSearchChange: onSearchChange,
190
- onFilterPress: () => setShowFilterView(true),
191
- hasActiveFilters: activeFilter !== null || ignoredPatterns.size > 0 || includedPatterns.size > 0,
192
- onClearCache: handleClearCache
193
- });
194
- };
195
- const footerNode = /*#__PURE__*/(0, _jsxRuntime.jsx)(_QueryBrowserFooter.QueryBrowserFooter, {
196
- activeFilter: activeFilter,
197
- onFilterChange: setActiveFilter,
198
- isFloatingMode: modalMode === "floating"
199
- });
200
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.JsModal, {
201
- visible: visible,
202
- onClose: onClose,
203
- onMinimize: onMinimize,
204
- persistenceKey: storagePrefix,
205
- header: {
206
- customContent: renderHeaderContent(),
207
- showToggleButton: true
208
- },
209
- onModeChange: handleModeChange,
210
- enablePersistence: true,
211
- initialMode: "bottomSheet",
212
- enableGlitchEffects: true
213
- // The query list virtualizes itself (see QueryBrowser) — it must own
214
- // scrolling. The filter view keeps the wrapper.
215
- ,
216
- disableScrollWrapper: !showFilterView,
217
- styles: {},
218
- footer: !showFilterView ? footerNode : undefined,
219
- footerHeight: !showFilterView ? footerHeight : undefined,
220
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
221
- style: styles.container,
222
- children: showFilterView ?
223
- /*#__PURE__*/
224
- /* Show filter view */
225
- (0, _jsxRuntime.jsx)(_QueryFilterViewV.QueryFilterViewV3, {
226
- queries: allQueries,
227
- activeFilter: activeFilter,
228
- onFilterChange: setActiveFilter,
229
- ignoredPatterns: ignoredPatterns,
230
- onPatternToggle: handlePatternToggle,
231
- includedPatterns: includedPatterns,
232
- onIncludedPatternToggle: handleIncludedPatternToggle
233
- }) :
234
- /*#__PURE__*/
235
- /* Show query browser */
236
- (0, _jsxRuntime.jsx)(_QueryBrowserMode.QueryBrowserMode, {
237
- selectedQuery: selectedQuery,
238
- onQuerySelect: onQuerySelect,
239
- activeFilter: activeFilter,
240
- searchText: searchText,
241
- ignoredPatterns: ignoredPatterns,
242
- includedPatterns: includedPatterns,
243
- onFilterPress: () => setShowFilterView(true)
244
- })
245
- })
246
- });
247
- }
248
- const styles = _reactNative.StyleSheet.create({
249
- container: {
250
- flex: 1,
251
- // Transparent so JsModal's ToolBackground shows through (the modal paints opaque base beneath it).
252
- backgroundColor: "transparent"
253
- }
254
- });
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.QueryBrowserModal=QueryBrowserModal;var _reactQuery=require("@tanstack/react-query");var _sharedUi=require("@buoy-gg/shared-ui");var _useSelectedQuery=require("../../hooks/useSelectedQuery");var _ReactQueryModalHeader=require("./ReactQueryModalHeader");var _QueryBrowserMode=require("../QueryBrowserMode");var _QueryBrowserFooter=require("./QueryBrowserFooter");var _QueryFilterViewV=require("../QueryFilterViewV3");var _react=require("react");var _reactNative=require("react-native");var _useAllQueries=_interopRequireDefault(require("../../hooks/useAllQueries"));var _jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(s){return s&&s.__esModule?s:{default:s}}function QueryBrowserModal({visible:s,selectedQueryKey:v,onQuerySelect:c,onClose:Q,onMinimize:F,activeFilter:w,onFilterChange:b,enableSharedModalDimensions:C=false,onTabChange:M,searchText:u="",onSearchChange:P}){const d=(0,_reactQuery.useQueryClient)();const y=(0,_useSelectedQuery.useGetQueryByQueryKey)(v);const p=(0,_useAllQueries.default)();const x=(0,_react.useCallback)(()=>{d.getQueryCache().clear()},[d]);const[m,q]=(0,_react.useState)(null);const i=w??m;const g=b??q;const[a,l]=(0,_react.useState)(false);const[o,f]=(0,_react.useState)(new Set);const[n,h]=(0,_react.useState)(new Set);(0,_react.useEffect)(()=>{const t=async()=>{try{const e=await _sharedUi.persistentStorage.getItem(_sharedUi.devToolsStorageKeys.reactQuery.ignoredPatterns());if(e){const r=JSON.parse(e);if(Array.isArray(r)){f(new Set(r))}}}catch(e){console.error("Failed to load ignored patterns:",e)}};t()},[]);(0,_react.useEffect)(()=>{const t=async()=>{try{const e=await _sharedUi.persistentStorage.getItem(_sharedUi.devToolsStorageKeys.reactQuery.includedPatterns());if(e){const r=JSON.parse(e);if(Array.isArray(r)){h(new Set(r))}}}catch(e){console.error("Failed to load included patterns:",e)}};t()},[]);(0,_react.useEffect)(()=>{const t=async()=>{try{const e=Array.from(o);await _sharedUi.persistentStorage.setItem(_sharedUi.devToolsStorageKeys.reactQuery.ignoredPatterns(),JSON.stringify(e))}catch(e){console.error("Failed to save ignored patterns:",e)}};t()},[o]);(0,_react.useEffect)(()=>{const t=async()=>{try{const e=Array.from(n);await _sharedUi.persistentStorage.setItem(_sharedUi.devToolsStorageKeys.reactQuery.includedPatterns(),JSON.stringify(e))}catch(e){console.error("Failed to save included patterns:",e)}};t()},[n]);const T=(0,_react.useCallback)(t=>{f(e=>{const r=new Set(e);if(r.has(t)){r.delete(t)}else{r.add(t)}return r})},[]);const _=(0,_react.useCallback)(t=>{h(e=>{const r=new Set(e);if(r.has(t)){r.delete(t)}else{r.add(t)}return r})},[]);const[S,j]=(0,_react.useState)("bottomSheet");const A=C?_sharedUi.devToolsStorageKeys.reactQuery.modal():_sharedUi.devToolsStorageKeys.reactQuery.browserModal();const B=(0,_react.useCallback)(t=>{j(t)},[]);const k=(0,_sharedUi.useSafeAreaInsets)({minBottom:16});const I=S==="floating"?56:48+k.bottom;if(!s)return null;const H=()=>{if(a){const t=[{key:"filters",label:"Filters"}];return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:()=>l(false)}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:"",noMargin:true,children:(0,_jsxRuntime.jsx)(_sharedUi.TabSelector,{tabs:t,activeTab:"filters",testIDPrefix:"buoy-rq-filterview-tab",onTabChange:()=>{}})})]})}return(0,_jsxRuntime.jsx)(_ReactQueryModalHeader.ReactQueryModalHeader,{selectedQuery:y,activeTab:"queries",onTabChange:M,onBack:()=>c(void 0),searchText:u,onSearchChange:P,onFilterPress:()=>l(true),hasActiveFilters:i!==null||o.size>0||n.size>0,onClearCache:x})};const V=(0,_jsxRuntime.jsx)(_QueryBrowserFooter.QueryBrowserFooter,{activeFilter:i,onFilterChange:g,isFloatingMode:S==="floating"});return(0,_jsxRuntime.jsx)(_sharedUi.JsModal,{visible:s,onClose:Q,onMinimize:F,persistenceKey:A,header:{customContent:H(),showToggleButton:true},onModeChange:B,enablePersistence:true,initialMode:"bottomSheet",enableGlitchEffects:true,disableScrollWrapper:!a,styles:{},footer:!a?V:void 0,footerHeight:!a?I:void 0,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.container,children:a?(0,_jsxRuntime.jsx)(_QueryFilterViewV.QueryFilterViewV3,{queries:p,activeFilter:i,onFilterChange:g,ignoredPatterns:o,onPatternToggle:T,includedPatterns:n,onIncludedPatternToggle:_}):(0,_jsxRuntime.jsx)(_QueryBrowserMode.QueryBrowserMode,{selectedQuery:y,onQuerySelect:c,activeFilter:i,searchText:u,ignoredPatterns:o,includedPatterns:n,onFilterPress:()=>l(true)})})})}const styles=_reactNative.StyleSheet.create({container:{flex:1,backgroundColor:"transparent"}});
@@ -1,83 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ReactQueryModal = ReactQueryModal;
7
- var _QueryBrowserModal = require("./QueryBrowserModal");
8
- var _DataEditorModal = require("./DataEditorModal");
9
- var _MutationBrowserModal = require("./MutationBrowserModal");
10
- var _MutationEditorModal = require("./MutationEditorModal");
11
- var _jsxRuntime = require("react/jsx-runtime");
12
- /**
13
- * Refactored ReactQueryModal following composition principles
14
- *
15
- * Applied principles:
16
- * - Decompose by Responsibility: Separated query browser and data editor modals
17
- * - Prefer Composition over Configuration: Uses specialized modal components
18
- * - Extract Reusable Logic: Modal routing logic based on query selection
19
- * - Utilize Render Props: Each modal handles its own rendering responsibility
20
- */
21
- function ReactQueryModal({
22
- visible,
23
- selectedQueryKey,
24
- selectedMutationId,
25
- onQuerySelect,
26
- onMutationSelect,
27
- onClose,
28
- onMinimize,
29
- activeFilter,
30
- onFilterChange,
31
- activeTab,
32
- onTabChange,
33
- enableSharedModalDimensions = false,
34
- searchText = "",
35
- onSearchChange
36
- }) {
37
- // Check if we have a key/id even if the query/mutation hasn't been found yet
38
- const inDetail = !!selectedQueryKey || !!selectedMutationId;
39
- const isQueryMode = activeTab === "queries";
40
- const isMutationMode = activeTab === "mutations";
41
- const commonProps = {
42
- onClose,
43
- onMinimize,
44
- activeFilter,
45
- onFilterChange,
46
- enableSharedModalDimensions
47
- };
48
- const showQueryBrowserModal = visible && !inDetail && isQueryMode;
49
- const showMutationBrowserModal = visible && !inDetail && isMutationMode;
50
- const showDataEditorModal = visible && inDetail && isQueryMode && !!selectedQueryKey;
51
- const showMutationEditorModal = visible && inDetail && isMutationMode && !!selectedMutationId;
52
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
53
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_QueryBrowserModal.QueryBrowserModal, {
54
- visible: showQueryBrowserModal,
55
- selectedQueryKey: selectedQueryKey,
56
- onQuerySelect: onQuerySelect,
57
- onTabChange: onTabChange,
58
- searchText: searchText,
59
- onSearchChange: onSearchChange,
60
- ...commonProps
61
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_MutationBrowserModal.MutationBrowserModal, {
62
- visible: showMutationBrowserModal,
63
- selectedMutationId: selectedMutationId,
64
- onMutationSelect: onMutationSelect,
65
- onTabChange: onTabChange,
66
- searchText: searchText,
67
- onSearchChange: onSearchChange,
68
- ...commonProps
69
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataEditorModal.DataEditorModal, {
70
- visible: showDataEditorModal,
71
- selectedQueryKey: selectedQueryKey,
72
- onQuerySelect: onQuerySelect,
73
- onTabChange: onTabChange,
74
- ...commonProps
75
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_MutationEditorModal.MutationEditorModal, {
76
- visible: showMutationEditorModal,
77
- selectedMutationId: selectedMutationId,
78
- onMutationSelect: onMutationSelect,
79
- onTabChange: onTabChange,
80
- ...commonProps
81
- })]
82
- });
83
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ReactQueryModal=ReactQueryModal;var _QueryBrowserModal=require("./QueryBrowserModal");var _DataEditorModal=require("./DataEditorModal");var _MutationBrowserModal=require("./MutationBrowserModal");var _MutationEditorModal=require("./MutationEditorModal");var _jsxRuntime=require("react/jsx-runtime");function ReactQueryModal({visible:o,selectedQueryKey:r,selectedMutationId:t,onQuerySelect:i,onMutationSelect:n,onClose:w,onMinimize:x,activeFilter:h,onFilterChange:j,activeTab:u,onTabChange:e,enableSharedModalDimensions:B=false,searchText:M="",onSearchChange:d}){const a=!!r||!!t;const l=u==="queries";const c=u==="mutations";const s={onClose:w,onMinimize:x,activeFilter:h,onFilterChange:j,enableSharedModalDimensions:B};const E=o&&!a&&l;const y=o&&!a&&c;const Q=o&&a&&l&&!!r;const _=o&&a&&c&&!!t;return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_QueryBrowserModal.QueryBrowserModal,{visible:E,selectedQueryKey:r,onQuerySelect:i,onTabChange:e,searchText:M,onSearchChange:d,...s}),(0,_jsxRuntime.jsx)(_MutationBrowserModal.MutationBrowserModal,{visible:y,selectedMutationId:t,onMutationSelect:n,onTabChange:e,searchText:M,onSearchChange:d,...s}),(0,_jsxRuntime.jsx)(_DataEditorModal.DataEditorModal,{visible:Q,selectedQueryKey:r,onQuerySelect:i,onTabChange:e,...s}),(0,_jsxRuntime.jsx)(_MutationEditorModal.MutationEditorModal,{visible:_,selectedMutationId:t,onMutationSelect:n,onTabChange:e,...s})]})}
@@ -1,194 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ReactQueryModalHeader = ReactQueryModalHeader;
7
- var _sharedUi = require("@buoy-gg/shared-ui");
8
- var _react = require("react");
9
- var _reactNative = require("react-native");
10
- var _WifiToggle = require("../WifiToggle");
11
- var _jsxRuntime = require("react/jsx-runtime");
12
- /**
13
- * Shared header for all React Query modals. Handles tab switching when browsing and presents
14
- * breadcrumbs when a specific query or mutation is selected.
15
- */
16
- function ReactQueryModalHeader({
17
- selectedQuery,
18
- selectedMutation,
19
- activeTab,
20
- onTabChange,
21
- onBack,
22
- searchText = "",
23
- onSearchChange,
24
- onFilterPress,
25
- hasActiveFilters = false,
26
- onClearCache,
27
- showWifiToggle = false
28
- }) {
29
- const [isSearchActive, setIsSearchActive] = (0, _react.useState)(false);
30
- // True while the header's clear ✕ is being pressed. With a mouse, pressing
31
- // the ✕ blurs the input FIRST, and the blur handler closes search — which
32
- // unmounts the ✕ before its own press can fire, so the query was never
33
- // cleared (desktop). Press-in lands before the blur, so the blur handler can
34
- // tell this dismissal apart from a click elsewhere.
35
- const clearPressRef = (0, _react.useRef)(false);
36
- const searchInputRef = (0, _react.useRef)(null);
37
-
38
- // Auto-focus search input when search becomes active
39
- (0, _react.useEffect)(() => {
40
- if (isSearchActive && searchInputRef.current) {
41
- searchInputRef.current.focus();
42
- }
43
- }, [isSearchActive]);
44
- const handleSearchToggle = () => {
45
- setIsSearchActive(!isSearchActive);
46
- if (isSearchActive && onSearchChange) {
47
- onSearchChange("");
48
- }
49
- };
50
- const handleSearch = text => {
51
- if (onSearchChange) {
52
- onSearchChange(text);
53
- }
54
- };
55
- // Simple function to get query display text
56
- const getQueryText = query => {
57
- if (!query?.queryKey) return "Unknown Query";
58
- const keys = Array.isArray(query.queryKey) ? query.queryKey : [query.queryKey];
59
- return keys.filter(k => k != null).map(k => String(k)).join(" › ") || "Unknown Query";
60
- };
61
- const getItemText = item => {
62
- if ("queryKey" in item) {
63
- return getQueryText(item);
64
- } else {
65
- return item.options.mutationKey ? (Array.isArray(item.options.mutationKey) ? item.options.mutationKey : [item.options.mutationKey]).filter(k => k != null).map(k => String(k)).join(" › ") || `Mutation #${item.mutationId}` : `Mutation #${item.mutationId}`;
66
- }
67
- };
68
- const tabs = [{
69
- key: "queries",
70
- label: "Queries"
71
- }, {
72
- key: "mutations",
73
- label: "Mutations"
74
- }];
75
-
76
- // Show details view when an item is selected
77
- if (selectedQuery || selectedMutation) {
78
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader, {
79
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation, {
80
- onBack: onBack
81
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
82
- title: getItemText(selectedQuery ?? selectedMutation),
83
- testID: "buoy-rq-detail-title"
84
- })]
85
- });
86
- }
87
-
88
- // Show browser view with tabs when no item is selected
89
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader, {
90
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Content, {
91
- title: "",
92
- noMargin: true,
93
- children: isSearchActive ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ModalHeader.Search, {
94
- value: searchText,
95
- onChangeText: handleSearch,
96
- onCancel: () => {
97
- handleSearch("");
98
- setIsSearchActive(false);
99
- },
100
- onDismiss: () => setIsSearchActive(false),
101
- dismissOnBlur: true,
102
- clearOnlyWhenText: true,
103
- placeholder: "Search query keys...",
104
- accessibilityLabel: "Search queries and mutations",
105
- iconSize: 14
106
- // These handles predate the shared field and are the reverse of
107
- // its convention (container = "-field", input = bare); kept as-is
108
- // so the e2e suite keeps its targets.
109
- ,
110
- testID: "buoy-rq-search",
111
- containerTestID: "buoy-rq-search-field",
112
- clearTestID: "buoy-rq-search-clear",
113
- inputProps: {
114
- "sentry-label": "ignore react query search header"
115
- }
116
- }) : showWifiToggle ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
117
- style: styles.tabRow,
118
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
119
- style: styles.tabSelectorWrap,
120
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.TabSelector, {
121
- tabs: tabs,
122
- activeTab: activeTab,
123
- testIDPrefix: "buoy-rq-tab",
124
- onTabChange: tab => onTabChange(tab)
125
- })
126
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_WifiToggle.WifiToggle, {
127
- size: 16,
128
- testID: "buoy-rq-wifi"
129
- })]
130
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.TabSelector, {
131
- tabs: tabs,
132
- activeTab: activeTab,
133
- testIDPrefix: "buoy-rq-tab",
134
- onTabChange: tab => onTabChange(tab)
135
- })
136
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_sharedUi.ModalHeader.Actions, {
137
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
138
- "sentry-label": "ignore open search",
139
- testID: "buoy-rq-search-open",
140
- accessibilityRole: "button",
141
- accessibilityLabel: "Search queries and mutations",
142
- onPress: handleSearchToggle,
143
- style: styles.headerActionButton,
144
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Search, {
145
- size: 14,
146
- color: _sharedUi.night.color.textSecondary
147
- })
148
- }), onFilterPress && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
149
- "sentry-label": "ignore open filter",
150
- testID: "buoy-rq-filters",
151
- accessibilityRole: "button",
152
- accessibilityLabel: hasActiveFilters ? "Filters, active" : "Filters",
153
- onPress: onFilterPress,
154
- style: [styles.headerActionButton, hasActiveFilters && styles.activeFilterButton],
155
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Filter, {
156
- size: 14,
157
- color: hasActiveFilters ? _sharedUi.night.color.accent : _sharedUi.night.color.textSecondary
158
- })
159
- }), onClearCache && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
160
- "sentry-label": "ignore clear cache",
161
- testID: "buoy-rq-clear-cache",
162
- accessibilityRole: "button",
163
- onPress: onClearCache,
164
- style: [styles.headerActionButton, styles.clearCacheButton],
165
- accessibilityLabel: `Clear ${activeTab} cache`,
166
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Trash, {
167
- size: 14,
168
- color: _sharedUi.night.color.warning
169
- })
170
- })]
171
- })]
172
- });
173
- }
174
- const styles = _reactNative.StyleSheet.create({
175
- tabRow: {
176
- flex: 1,
177
- flexDirection: "row",
178
- alignItems: "center",
179
- gap: 12
180
- },
181
- tabSelectorWrap: {
182
- flex: 1
183
- },
184
- headerActionButton: {
185
- padding: 6,
186
- borderRadius: 4
187
- },
188
- activeFilterButton: {
189
- backgroundColor: _sharedUi.night.color.accentSoft
190
- },
191
- clearCacheButton: {
192
- backgroundColor: _sharedUi.night.color.warningSoft
193
- }
194
- });
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.ReactQueryModalHeader=ReactQueryModalHeader;var _sharedUi=require("@buoy-gg/shared-ui");var _react=require("react");var _reactNative=require("react-native");var _WifiToggle=require("../WifiToggle");var _jsxRuntime=require("react/jsx-runtime");function ReactQueryModalHeader({selectedQuery:c,selectedMutation:l,activeTab:o,onTabChange:u,onBack:x,searchText:g="",onSearchChange:a,onFilterPress:y,hasActiveFilters:i=false,onClearCache:d,showWifiToggle:j=false}){const[t,s]=(0,_react.useState)(false);const T=(0,_react.useRef)(false);const b=(0,_react.useRef)(null);(0,_react.useEffect)(()=>{if(t&&b.current){b.current.focus()}},[t]);const p=()=>{s(!t);if(t&&a){a("")}};const h=e=>{if(a){a(e)}};const q=e=>{if(!e?.queryKey)return"Unknown Query";const r=Array.isArray(e.queryKey)?e.queryKey:[e.queryKey];return r.filter(n=>n!=null).map(n=>String(n)).join(" \u203A ")||"Unknown Query"};const S=e=>{if("queryKey"in e){return q(e)}else{return e.options.mutationKey?(Array.isArray(e.options.mutationKey)?e.options.mutationKey:[e.options.mutationKey]).filter(r=>r!=null).map(r=>String(r)).join(" \u203A ")||`Mutation #${e.mutationId}`:`Mutation #${e.mutationId}`}};const f=[{key:"queries",label:"Queries"},{key:"mutations",label:"Mutations"}];if(c||l){return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Navigation,{onBack:x}),(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:S(c??l),testID:"buoy-rq-detail-title"})]})}return(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader,{children:[(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Content,{title:"",noMargin:true,children:t?(0,_jsxRuntime.jsx)(_sharedUi.ModalHeader.Search,{value:g,onChangeText:h,onCancel:()=>{h("");s(false)},onDismiss:()=>s(false),dismissOnBlur:true,clearOnlyWhenText:true,placeholder:"Search query keys...",accessibilityLabel:"Search queries and mutations",iconSize:14,testID:"buoy-rq-search",containerTestID:"buoy-rq-search-field",clearTestID:"buoy-rq-search-clear",inputProps:{"sentry-label":"ignore react query search header"}}):j?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.tabRow,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.tabSelectorWrap,children:(0,_jsxRuntime.jsx)(_sharedUi.TabSelector,{tabs:f,activeTab:o,testIDPrefix:"buoy-rq-tab",onTabChange:e=>u(e)})}),(0,_jsxRuntime.jsx)(_WifiToggle.WifiToggle,{size:16,testID:"buoy-rq-wifi"})]}):(0,_jsxRuntime.jsx)(_sharedUi.TabSelector,{tabs:f,activeTab:o,testIDPrefix:"buoy-rq-tab",onTabChange:e=>u(e)})}),(0,_jsxRuntime.jsxs)(_sharedUi.ModalHeader.Actions,{children:[(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{"sentry-label":"ignore open search",testID:"buoy-rq-search-open",accessibilityRole:"button",accessibilityLabel:"Search queries and mutations",onPress:p,style:styles.headerActionButton,children:(0,_jsxRuntime.jsx)(_sharedUi.Search,{size:14,color:_sharedUi.night.color.textSecondary})}),y&&(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{"sentry-label":"ignore open filter",testID:"buoy-rq-filters",accessibilityRole:"button",accessibilityLabel:i?"Filters, active":"Filters",onPress:y,style:[styles.headerActionButton,i&&styles.activeFilterButton],children:(0,_jsxRuntime.jsx)(_sharedUi.Filter,{size:14,color:i?_sharedUi.night.color.accent:_sharedUi.night.color.textSecondary})}),d&&(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{"sentry-label":"ignore clear cache",testID:"buoy-rq-clear-cache",accessibilityRole:"button",onPress:d,style:[styles.headerActionButton,styles.clearCacheButton],accessibilityLabel:`Clear ${o} cache`,children:(0,_jsxRuntime.jsx)(_sharedUi.Trash,{size:14,color:_sharedUi.night.color.warning})})]})]})}const styles=_reactNative.StyleSheet.create({tabRow:{flex:1,flexDirection:"row",alignItems:"center",gap:12},tabSelectorWrap:{flex:1},headerActionButton:{padding:6,borderRadius:4},activeFilterButton:{backgroundColor:_sharedUi.night.color.accentSoft},clearCacheButton:{backgroundColor:_sharedUi.night.color.warningSoft}});