@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,51 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.WifiToggle = WifiToggle;
7
- var _reactNative = require("react-native");
8
- var _sharedUi = require("@buoy-gg/shared-ui");
9
- var _useWifiState = require("../hooks/useWifiState");
10
- var _jsxRuntime = require("react/jsx-runtime");
11
- /**
12
- * Small icon button that toggles React Query’s online manager, allowing developers to simulate
13
- * offline scenarios directly from the modal header.
14
- */
15
- function WifiToggle({
16
- size = 16,
17
- testID
18
- }) {
19
- const {
20
- isOnline,
21
- handleWifiToggle
22
- } = (0, _useWifiState.useWifiState)();
23
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
24
- "sentry-label": `ignore toggle WiFi ${isOnline ? "On" : "Off"}`,
25
- testID: testID,
26
- accessibilityRole: "button",
27
- accessibilityLabel: `WiFi ${isOnline ? "On" : "Off"}`,
28
- accessibilityHint: `Tap to turn WiFi ${isOnline ? "off" : "on"} for React Query`,
29
- onPress: handleWifiToggle,
30
- hitSlop: {
31
- top: 10,
32
- bottom: 10,
33
- left: 10,
34
- right: 10
35
- },
36
- activeOpacity: 0.7,
37
- style: {
38
- alignItems: "center",
39
- justifyContent: "center",
40
- width: 14,
41
- flexShrink: 0
42
- },
43
- children: isOnline ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Wifi, {
44
- size: size,
45
- color: "#10B981"
46
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Wifi, {
47
- size: size,
48
- color: "#DC2626"
49
- })
50
- });
51
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.WifiToggle=WifiToggle;var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _useWifiState=require("../hooks/useWifiState");var _jsxRuntime=require("react/jsx-runtime");function WifiToggle({size:i=16,testID:t}){const{isOnline:e,handleWifiToggle:r}=(0,_useWifiState.useWifiState)();return(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{"sentry-label":`ignore toggle WiFi ${e?"On":"Off"}`,testID:t,accessibilityRole:"button",accessibilityLabel:`WiFi ${e?"On":"Off"}`,accessibilityHint:`Tap to turn WiFi ${e?"off":"on"} for React Query`,onPress:r,hitSlop:{top:10,bottom:10,left:10,right:10},activeOpacity:.7,style:{alignItems:"center",justifyContent:"center",width:14,flexShrink:0},children:e?(0,_jsxRuntime.jsx)(_sharedUi.Wifi,{size:i,color:"#10B981"}):(0,_jsxRuntime.jsx)(_sharedUi.Wifi,{size:i,color:"#DC2626"})})}
@@ -1,103 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DataEditorModal = DataEditorModal;
7
- var _sharedUi = require("@buoy-gg/shared-ui");
8
- var _useSelectedQuery = require("../../hooks/useSelectedQuery");
9
- var _ReactQueryModalHeader = require("./ReactQueryModalHeader");
10
- var _DataEditorMode = require("../DataEditorMode");
11
- var _react = require("react");
12
- var _jsxRuntime = require("react/jsx-runtime");
13
- /**
14
- * Specialized modal for data editing following "Decompose by Responsibility"
15
- * Single purpose: Display data editor when a query is selected
16
- */
17
- function DataEditorModal({
18
- visible,
19
- selectedQueryKey,
20
- onQuerySelect,
21
- onClose,
22
- onMinimize,
23
- enableSharedModalDimensions = false,
24
- onTabChange
25
- }) {
26
- const {
27
- query: selectedQuery,
28
- version: queryVersion
29
- } = (0, _useSelectedQuery.useGetQueryByQueryKeyWithVersion)(selectedQueryKey);
30
- const [modalMode, setModalMode] = (0, _react.useState)("bottomSheet");
31
-
32
- /**
33
- * Fall back to the list when the selected query leaves the cache — a
34
- * removal, a cache clear, or garbage collection. Same failure as the
35
- * mutation editor: the key that selected it is still set, so this modal
36
- * bails out and the browser stays hidden behind it, leaving an "open" tool
37
- * with nothing on screen. The ref covers the tick before the subscription
38
- * has resolved the query, when undefined does not yet mean gone.
39
- */
40
- const currentQueryKey = selectedQueryKey ? JSON.stringify(selectedQueryKey) : undefined;
41
- const seenQueryKey = (0, _react.useRef)(undefined);
42
- (0, _react.useEffect)(() => {
43
- if (selectedQuery) {
44
- seenQueryKey.current = currentQueryKey;
45
- return;
46
- }
47
- // Keyed to THIS query for the same reason as the mutation editor: the
48
- // last-seen key outlives the detail view, so an un-keyed check would fire
49
- // on the next selection before its lookup has resolved.
50
- if (visible && seenQueryKey.current !== undefined && seenQueryKey.current === currentQueryKey) {
51
- seenQueryKey.current = undefined;
52
- onQuerySelect(undefined);
53
- }
54
- }, [visible, selectedQuery, currentQueryKey, onQuerySelect]);
55
- const handleModeChange = (0, _react.useCallback)(mode => {
56
- setModalMode(mode);
57
- }, []);
58
-
59
- // JsModal overlays the footer on the content and only reserves `footerHeight`
60
- // of padding beneath it. DataEditorActionsFooter pads its bottom with
61
- // `insets.bottom + 8` when docked, so the reserve must grow by the same
62
- // amount or the editor bottom hides behind the footer.
63
- const insets = (0, _sharedUi.useSafeAreaInsets)({
64
- minBottom: 16
65
- });
66
- const footerHeight = modalMode === "floating" ? 72 : 80 + insets.bottom;
67
- const renderHeaderContent = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ReactQueryModalHeader.ReactQueryModalHeader, {
68
- selectedQuery: selectedQuery,
69
- activeTab: "queries",
70
- onTabChange: onTabChange,
71
- onBack: () => onQuerySelect(undefined)
72
- });
73
- const storagePrefix = enableSharedModalDimensions ? _sharedUi.devToolsStorageKeys.reactQuery.modal() : `${_sharedUi.devToolsStorageKeys.reactQuery.modal()}_data_editor`;
74
- if (!visible || !selectedQuery) return null;
75
- const footerNode = /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataEditorMode.DataEditorActionsFooter, {
76
- selectedQuery: selectedQuery,
77
- isFloatingMode: modalMode === "floating",
78
- queryVersion: queryVersion
79
- }, `footer-${queryVersion}`);
80
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.JsModal, {
81
- visible: visible,
82
- onClose: onClose,
83
- onMinimize: onMinimize,
84
- persistenceKey: storagePrefix,
85
- header: {
86
- customContent: renderHeaderContent(),
87
- showToggleButton: true
88
- },
89
- onModeChange: handleModeChange,
90
- enablePersistence: true,
91
- initialMode: "bottomSheet",
92
- enableGlitchEffects: true,
93
- styles: {},
94
- footer: footerNode,
95
- footerHeight: footerHeight,
96
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataEditorMode.DataEditorMode, {
97
- selectedQuery: selectedQuery,
98
- isFloatingMode: modalMode === "floating",
99
- disableInternalFooter: true,
100
- queryVersion: queryVersion
101
- })
102
- });
103
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.DataEditorModal=DataEditorModal;var _sharedUi=require("@buoy-gg/shared-ui");var _useSelectedQuery=require("../../hooks/useSelectedQuery");var _ReactQueryModalHeader=require("./ReactQueryModalHeader");var _DataEditorMode=require("../DataEditorMode");var _react=require("react");var _jsxRuntime=require("react/jsx-runtime");function DataEditorModal({visible:t,selectedQueryKey:o,onQuerySelect:n,onClose:u,onMinimize:i,enableSharedModalDimensions:c=false,onTabChange:l}){const{query:e,version:a}=(0,_useSelectedQuery.useGetQueryByQueryKeyWithVersion)(o);const[s,f]=(0,_react.useState)("bottomSheet");const d=o?JSON.stringify(o):void 0;const r=(0,_react.useRef)(void 0);(0,_react.useEffect)(()=>{if(e){r.current=d;return}if(t&&r.current!==void 0&&r.current===d){r.current=void 0;n(void 0)}},[t,e,d,n]);const y=(0,_react.useCallback)(Q=>{f(Q)},[]);const M=(0,_sharedUi.useSafeAreaInsets)({minBottom:16});const g=s==="floating"?72:80+M.bottom;const h=()=>(0,_jsxRuntime.jsx)(_ReactQueryModalHeader.ReactQueryModalHeader,{selectedQuery:e,activeTab:"queries",onTabChange:l,onBack:()=>n(void 0)});const m=c?_sharedUi.devToolsStorageKeys.reactQuery.modal():`${_sharedUi.devToolsStorageKeys.reactQuery.modal()}_data_editor`;if(!t||!e)return null;const q=(0,_jsxRuntime.jsx)(_DataEditorMode.DataEditorActionsFooter,{selectedQuery:e,isFloatingMode:s==="floating",queryVersion:a},`footer-${a}`);return(0,_jsxRuntime.jsx)(_sharedUi.JsModal,{visible:t,onClose:u,onMinimize:i,persistenceKey:m,header:{customContent:h(),showToggleButton:true},onModeChange:y,enablePersistence:true,initialMode:"bottomSheet",enableGlitchEffects:true,styles:{},footer:q,footerHeight:g,children:(0,_jsxRuntime.jsx)(_DataEditorMode.DataEditorMode,{selectedQuery:e,isFloatingMode:s==="floating",disableInternalFooter:true,queryVersion:a})})}
@@ -1,61 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.MutationBrowserFooter = MutationBrowserFooter;
7
- var _reactNative = require("react-native");
8
- var _sharedUi = require("@buoy-gg/shared-ui");
9
- var _MutationStatusCount = _interopRequireDefault(require("../query-browser/MutationStatusCount"));
10
- var _react = require("react");
11
- var _jsxRuntime = require("react/jsx-runtime");
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- /**
14
- * Footer component for MutationBrowserModal following composition principles
15
- *
16
- * Applied principles:
17
- * - Decompose by Responsibility: Dedicated footer component for mutation filter controls
18
- * - Prefer Composition over Configuration: Specialized footer matching DataEditorMode pattern
19
- * - Extract Reusable Logic: Consistent footer styling across modal types
20
- */
21
- function MutationBrowserFooter({
22
- activeFilter,
23
- onFilterChange,
24
- modalMode,
25
- size = "default"
26
- }) {
27
- const isFloatingMode = modalMode === "floating";
28
- const insets = (0, _sharedUi.useSafeAreaInsets)({
29
- minBottom: 16
30
- });
31
-
32
- // Use useMemo to ensure paddingBottom is recalculated when isFloatingMode changes
33
- const paddingBottom = (0, _react.useMemo)(() => {
34
- return !isFloatingMode ? insets.bottom : 0;
35
- }, [isFloatingMode, insets.bottom]);
36
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToolFooter, {
37
- // Force re-render with key change
38
- floating: isFloatingMode,
39
- safeArea: false,
40
- paddingBottom: paddingBottom,
41
- style: styles.filterFooter,
42
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
43
- style: styles.filterContainer,
44
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MutationStatusCount.default, {
45
- activeFilter: activeFilter,
46
- onFilterChange: onFilterChange,
47
- size: size
48
- })
49
- })
50
- }, `footer-${isFloatingMode ? "floating" : "docked"}`);
51
- }
52
- const styles = _reactNative.StyleSheet.create({
53
- filterFooter: {
54
- paddingTop: 8,
55
- paddingHorizontal: 0
56
- },
57
- filterContainer: {
58
- minHeight: 32,
59
- justifyContent: "center"
60
- }
61
- });
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.MutationBrowserFooter=MutationBrowserFooter;var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _MutationStatusCount=_interopRequireDefault(require("../query-browser/MutationStatusCount"));var _react=require("react");var _jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function MutationBrowserFooter({activeFilter:e,onFilterChange:o,modalMode:i,size:n="default"}){const t=i==="floating";const r=(0,_sharedUi.useSafeAreaInsets)({minBottom:16});const a=(0,_react.useMemo)(()=>{return!t?r.bottom:0},[t,r.bottom]);return(0,_jsxRuntime.jsx)(_sharedUi.ToolFooter,{floating:t,safeArea:false,paddingBottom:a,style:styles.filterFooter,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.filterContainer,children:(0,_jsxRuntime.jsx)(_MutationStatusCount.default,{activeFilter:e,onFilterChange:o,size:n})})},`footer-${t?"floating":"docked"}`)}const styles=_reactNative.StyleSheet.create({filterFooter:{paddingTop:8,paddingHorizontal:0},filterContainer:{minHeight:32,justifyContent:"center"}});
@@ -1,164 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.MutationBrowserModal = MutationBrowserModal;
7
- var _reactQuery = require("@tanstack/react-query");
8
- var _react = require("react");
9
- var _useSelectedMutation = require("../../hooks/useSelectedMutation");
10
- var _MutationBrowserMode = require("../MutationBrowserMode");
11
- var _MutationBrowserFooter = require("./MutationBrowserFooter");
12
- var _sharedUi = require("@buoy-gg/shared-ui");
13
- var _ReactQueryModalHeader = require("./ReactQueryModalHeader");
14
- var _reactNative = require("react-native");
15
- var _SwipeIndicator = require("./SwipeIndicator");
16
- var _jsxRuntime = require("react/jsx-runtime");
17
- /**
18
- * Specialized modal wrapper for browsing mutations. Handles persistence, swipe gestures, and
19
- * filter coordination before delegating to the underlying list view.
20
- */
21
- function MutationBrowserModal({
22
- visible,
23
- selectedMutationId,
24
- onMutationSelect,
25
- onClose,
26
- onMinimize,
27
- activeFilter: externalActiveFilter,
28
- onFilterChange: externalOnFilterChange,
29
- onTabChange,
30
- enableSharedModalDimensions = false,
31
- searchText = "",
32
- onSearchChange
33
- }) {
34
- const queryClient = (0, _reactQuery.useQueryClient)();
35
- const selectedMutation = (0, _useSelectedMutation.useGetMutationById)(selectedMutationId);
36
- const [internalActiveFilter, setInternalActiveFilter] = (0, _react.useState)(null);
37
- const activeFilter = externalActiveFilter ?? internalActiveFilter;
38
- const setActiveFilter = externalOnFilterChange ?? setInternalActiveFilter;
39
-
40
- // Clear mutation cache handler
41
- const handleClearCache = (0, _react.useCallback)(() => {
42
- queryClient.getMutationCache().clear();
43
- onMutationSelect(undefined);
44
- }, [queryClient, onMutationSelect]);
45
-
46
- // Track modal mode for conditional styling
47
- // Initialize with bottomSheet but it will be updated from persisted state if available
48
- const [modalMode, setModalMode] = (0, _react.useState)("bottomSheet");
49
- const storagePrefix = enableSharedModalDimensions ? _sharedUi.devToolsStorageKeys.reactQuery.modal() : _sharedUi.devToolsStorageKeys.reactQuery.mutationModal();
50
-
51
- // Animated value for gesture tracking [[memory:4875251]]
52
- const translationX = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
53
- const handleSwipeNavigation = (0, _react.useCallback)(direction => {
54
- if (direction === "right") {
55
- onTabChange("queries");
56
- }
57
- }, [onTabChange]);
58
- const handleModeChange = (0, _react.useCallback)(mode => {
59
- setModalMode(mode);
60
- }, []);
61
-
62
- // JsModal overlays the footer on the content and only reserves `footerHeight`
63
- // of padding beneath it. MutationBrowserFooter grows by the safe-area inset
64
- // when docked, so the reserve must track that or the list bottom hides
65
- // behind the footer.
66
- const insets = (0, _sharedUi.useSafeAreaInsets)({
67
- minBottom: 16
68
- });
69
- const footerHeight = modalMode === "floating" ? 56 : 48 + insets.bottom;
70
-
71
- // Create PanResponder for swipe navigation
72
- const panResponder = (0, _react.useRef)(_reactNative.PanResponder.create({
73
- onStartShouldSetPanResponder: () => false,
74
- onMoveShouldSetPanResponder: (evt, gestureState) => {
75
- // Only capture horizontal swipes
76
- return Math.abs(gestureState.dx) > 5 && Math.abs(gestureState.dy) < 10;
77
- },
78
- onPanResponderMove: (evt, gestureState) => {
79
- // Update translation for visual feedback
80
- translationX.setValue(gestureState.dx);
81
- },
82
- onPanResponderRelease: (evt, gestureState) => {
83
- const {
84
- dx,
85
- vx
86
- } = gestureState;
87
- const swipeThreshold = 80; // Match EDGE_THRESHOLD from SwipeIndicator
88
- const velocityThreshold = 0.5;
89
-
90
- // Reset visual feedback with spring animation
91
- _reactNative.Animated.spring(translationX, {
92
- toValue: 0,
93
- useNativeDriver: true
94
- }).start();
95
- if (Math.abs(dx) > swipeThreshold || Math.abs(vx) > velocityThreshold) {
96
- if (dx > 0 || vx > 0) {
97
- handleSwipeNavigation("right");
98
- } else {
99
- handleSwipeNavigation("left");
100
- }
101
- }
102
- },
103
- onPanResponderTerminate: () => {
104
- // Reset on termination
105
- _reactNative.Animated.spring(translationX, {
106
- toValue: 0,
107
- useNativeDriver: true
108
- }).start();
109
- }
110
- })).current;
111
- if (!visible) return null;
112
- const renderHeaderContent = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ReactQueryModalHeader.ReactQueryModalHeader, {
113
- selectedMutation: selectedMutation,
114
- activeTab: "mutations",
115
- onTabChange: onTabChange,
116
- onBack: () => onMutationSelect(undefined),
117
- searchText: searchText,
118
- onSearchChange: onSearchChange,
119
- onClearCache: handleClearCache
120
- });
121
- const footerNode = /*#__PURE__*/(0, _jsxRuntime.jsx)(_MutationBrowserFooter.MutationBrowserFooter, {
122
- activeFilter: activeFilter,
123
- onFilterChange: setActiveFilter,
124
- modalMode: modalMode
125
- });
126
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.JsModal, {
127
- visible: visible,
128
- onClose: onClose,
129
- onMinimize: onMinimize,
130
- persistenceKey: storagePrefix,
131
- header: {
132
- customContent: renderHeaderContent(),
133
- showToggleButton: true
134
- },
135
- onModeChange: handleModeChange,
136
- enablePersistence: true,
137
- initialMode: "bottomSheet",
138
- enableGlitchEffects: true,
139
- styles: {},
140
- footer: footerNode,
141
- footerHeight: footerHeight,
142
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
143
- style: {
144
- flex: 1
145
- },
146
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
147
- ...panResponder.panHandlers,
148
- style: {
149
- flex: 1
150
- },
151
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SwipeIndicator.SwipeIndicator, {
152
- translationX: translationX,
153
- canSwipeLeft: false,
154
- canSwipeRight: true
155
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_MutationBrowserMode.MutationBrowserMode, {
156
- selectedMutation: selectedMutation,
157
- onMutationSelect: onMutationSelect,
158
- activeFilter: activeFilter,
159
- searchText: searchText
160
- })]
161
- })
162
- })
163
- });
164
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.MutationBrowserModal=MutationBrowserModal;var _reactQuery=require("@tanstack/react-query");var _react=require("react");var _useSelectedMutation=require("../../hooks/useSelectedMutation");var _MutationBrowserMode=require("../MutationBrowserMode");var _MutationBrowserFooter=require("./MutationBrowserFooter");var _sharedUi=require("@buoy-gg/shared-ui");var _ReactQueryModalHeader=require("./ReactQueryModalHeader");var _reactNative=require("react-native");var _SwipeIndicator=require("./SwipeIndicator");var _jsxRuntime=require("react/jsx-runtime");function MutationBrowserModal({visible:n,selectedMutationId:v,onMutationSelect:r,onClose:f,onMinimize:p,activeFilter:g,onFilterChange:y,onTabChange:o,enableSharedModalDimensions:w=false,searchText:s="",onSearchChange:x}){const i=(0,_reactQuery.useQueryClient)();const l=(0,_useSelectedMutation.useGetMutationById)(v);const[m,S]=(0,_react.useState)(null);const u=g??m;const C=y??S;const R=(0,_react.useCallback)(()=>{i.getMutationCache().clear();r(void 0)},[i,r]);const[c,b]=(0,_react.useState)("bottomSheet");const q=w?_sharedUi.devToolsStorageKeys.reactQuery.modal():_sharedUi.devToolsStorageKeys.reactQuery.mutationModal();const a=(0,_react.useRef)(new _reactNative.Animated.Value(0)).current;const d=(0,_react.useCallback)(e=>{if(e==="right"){o("queries")}},[o]);const B=(0,_react.useCallback)(e=>{b(e)},[]);const F=(0,_sharedUi.useSafeAreaInsets)({minBottom:16});const _=c==="floating"?56:48+F.bottom;const j=(0,_react.useRef)(_reactNative.PanResponder.create({onStartShouldSetPanResponder:()=>false,onMoveShouldSetPanResponder:(e,t)=>{return Math.abs(t.dx)>5&&Math.abs(t.dy)<10},onPanResponderMove:(e,t)=>{a.setValue(t.dx)},onPanResponderRelease:(e,t)=>{const{dx:h,vx:M}=t;const H=80;const Q=.5;_reactNative.Animated.spring(a,{toValue:0,useNativeDriver:true}).start();if(Math.abs(h)>H||Math.abs(M)>Q){if(h>0||M>0){d("right")}else{d("left")}}},onPanResponderTerminate:()=>{_reactNative.Animated.spring(a,{toValue:0,useNativeDriver:true}).start()}})).current;if(!n)return null;const P=()=>(0,_jsxRuntime.jsx)(_ReactQueryModalHeader.ReactQueryModalHeader,{selectedMutation:l,activeTab:"mutations",onTabChange:o,onBack:()=>r(void 0),searchText:s,onSearchChange:x,onClearCache:R});const A=(0,_jsxRuntime.jsx)(_MutationBrowserFooter.MutationBrowserFooter,{activeFilter:u,onFilterChange:C,modalMode:c});return(0,_jsxRuntime.jsx)(_sharedUi.JsModal,{visible:n,onClose:f,onMinimize:p,persistenceKey:q,header:{customContent:P(),showToggleButton:true},onModeChange:B,enablePersistence:true,initialMode:"bottomSheet",enableGlitchEffects:true,styles:{},footer:A,footerHeight:_,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flex:1},children:(0,_jsxRuntime.jsxs)(_reactNative.View,{...j.panHandlers,style:{flex:1},children:[(0,_jsxRuntime.jsx)(_SwipeIndicator.SwipeIndicator,{translationX:a,canSwipeLeft:false,canSwipeRight:true}),(0,_jsxRuntime.jsx)(_MutationBrowserMode.MutationBrowserMode,{selectedMutation:l,onMutationSelect:r,activeFilter:u,searchText:s})]})})})}
@@ -1,106 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.MutationEditorModal = MutationEditorModal;
7
- var _sharedUi = require("@buoy-gg/shared-ui");
8
- var _useSelectedMutation = require("../../hooks/useSelectedMutation");
9
- var _ReactQueryModalHeader = require("./ReactQueryModalHeader");
10
- var _MutationEditorMode = require("../MutationEditorMode");
11
- var _react = require("react");
12
- var _jsxRuntime = require("react/jsx-runtime");
13
- /**
14
- * Modal variant dedicated to editing a single mutation entry. Restores persisted positioning and
15
- * mirrors the behavior of the query editor.
16
- */
17
- function MutationEditorModal({
18
- visible,
19
- selectedMutationId,
20
- onMutationSelect,
21
- onClose,
22
- onMinimize,
23
- onTabChange,
24
- enableSharedModalDimensions = false
25
- }) {
26
- const selectedMutation = (0, _useSelectedMutation.useGetMutationById)(selectedMutationId);
27
- const [modalMode, setModalMode] = (0, _react.useState)("bottomSheet");
28
-
29
- /**
30
- * Fall back to the list when the selected mutation leaves the cache.
31
- *
32
- * Without this the whole tool disappears. `Remove` (and a mutation-cache
33
- * clear, and ordinary garbage collection) drops the entry while the id that
34
- * selected it is still set, so this modal bails out on the missing mutation
35
- * and the browser stays hidden behind an `inDetail` that is still true —
36
- * leaving an "open" tool with nothing on screen and no way back except
37
- * closing and reopening it from the dial.
38
- *
39
- * The ref is what makes it safe: `useGetMutationById` resolves on a
40
- * `setTimeout(0)`, so the mutation is legitimately undefined for the first
41
- * tick after a selection. Only a mutation that was HERE and then went away
42
- * counts as gone.
43
- */
44
- const seenMutationId = (0, _react.useRef)(undefined);
45
- (0, _react.useEffect)(() => {
46
- if (selectedMutation) {
47
- seenMutationId.current = selectedMutation.mutationId;
48
- return;
49
- }
50
- // Only THIS mutation going missing counts. Keying the check to the id
51
- // matters: leaving a detail view leaves the last-seen id behind, and a
52
- // plain "we had one and now we don't" flag would fire on the very next
53
- // selection — during the tick before its own lookup resolves — and bounce
54
- // the user straight back out of the mutation they just opened.
55
- if (visible && seenMutationId.current !== undefined && seenMutationId.current === selectedMutationId) {
56
- seenMutationId.current = undefined;
57
- onMutationSelect(undefined);
58
- }
59
- }, [visible, selectedMutation, selectedMutationId, onMutationSelect]);
60
- const handleModeChange = (0, _react.useCallback)(mode => {
61
- setModalMode(mode);
62
- }, []);
63
-
64
- // JsModal overlays the footer on the content and only reserves `footerHeight`
65
- // of padding beneath it. MutationEditorActionsFooter pads its bottom with
66
- // `insets.bottom + 8` when docked, so the reserve must grow by the same
67
- // amount or the editor bottom hides behind the action bar.
68
- const insets = (0, _sharedUi.useSafeAreaInsets)({
69
- minBottom: 16
70
- });
71
- const footerHeight = modalMode === "floating" ? 72 : 80 + insets.bottom;
72
- const renderHeaderContent = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ReactQueryModalHeader.ReactQueryModalHeader, {
73
- selectedMutation: selectedMutation,
74
- activeTab: "mutations",
75
- onTabChange: onTabChange,
76
- onBack: () => onMutationSelect(undefined)
77
- });
78
- const storagePrefix = enableSharedModalDimensions ? _sharedUi.devToolsStorageKeys.reactQuery.modal() : _sharedUi.devToolsStorageKeys.reactQuery.mutationModal();
79
- if (!visible || !selectedMutation) return null;
80
- const footerNode = /*#__PURE__*/(0, _jsxRuntime.jsx)(_MutationEditorMode.MutationEditorActionsFooter, {
81
- selectedMutation: selectedMutation,
82
- isFloatingMode: modalMode === "floating"
83
- });
84
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.JsModal, {
85
- visible: visible,
86
- onClose: onClose,
87
- onMinimize: onMinimize,
88
- persistenceKey: storagePrefix,
89
- header: {
90
- customContent: renderHeaderContent(),
91
- showToggleButton: true
92
- },
93
- onModeChange: handleModeChange,
94
- enablePersistence: true,
95
- initialMode: "bottomSheet",
96
- enableGlitchEffects: true,
97
- styles: {},
98
- footer: footerNode,
99
- footerHeight: footerHeight,
100
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MutationEditorMode.MutationEditorMode, {
101
- selectedMutation: selectedMutation,
102
- isFloatingMode: modalMode === "floating",
103
- disableInternalFooter: true
104
- })
105
- });
106
- }
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.MutationEditorModal=MutationEditorModal;var _sharedUi=require("@buoy-gg/shared-ui");var _useSelectedMutation=require("../../hooks/useSelectedMutation");var _ReactQueryModalHeader=require("./ReactQueryModalHeader");var _MutationEditorMode=require("../MutationEditorMode");var _react=require("react");var _jsxRuntime=require("react/jsx-runtime");function MutationEditorModal({visible:t,selectedMutationId:r,onMutationSelect:n,onClose:i,onMinimize:u,onTabChange:s,enableSharedModalDimensions:d=false}){const e=(0,_useSelectedMutation.useGetMutationById)(r);const[a,c]=(0,_react.useState)("bottomSheet");const o=(0,_react.useRef)(void 0);(0,_react.useEffect)(()=>{if(e){o.current=e.mutationId;return}if(t&&o.current!==void 0&&o.current===r){o.current=void 0;n(void 0)}},[t,e,r,n]);const l=(0,_react.useCallback)(y=>{c(y)},[]);const M=(0,_sharedUi.useSafeAreaInsets)({minBottom:16});const f=a==="floating"?72:80+M.bottom;const g=()=>(0,_jsxRuntime.jsx)(_ReactQueryModalHeader.ReactQueryModalHeader,{selectedMutation:e,activeTab:"mutations",onTabChange:s,onBack:()=>n(void 0)});const h=d?_sharedUi.devToolsStorageKeys.reactQuery.modal():_sharedUi.devToolsStorageKeys.reactQuery.mutationModal();if(!t||!e)return null;const m=(0,_jsxRuntime.jsx)(_MutationEditorMode.MutationEditorActionsFooter,{selectedMutation:e,isFloatingMode:a==="floating"});return(0,_jsxRuntime.jsx)(_sharedUi.JsModal,{visible:t,onClose:i,onMinimize:u,persistenceKey:h,header:{customContent:g(),showToggleButton:true},onModeChange:l,enablePersistence:true,initialMode:"bottomSheet",enableGlitchEffects:true,styles:{},footer:m,footerHeight:f,children:(0,_jsxRuntime.jsx)(_MutationEditorMode.MutationEditorMode,{selectedMutation:e,isFloatingMode:a==="floating",disableInternalFooter:true})})}
@@ -1,56 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.QueryBrowserFooter = QueryBrowserFooter;
7
- var _reactNative = require("react-native");
8
- var _sharedUi = require("@buoy-gg/shared-ui");
9
- var _QueryStatusCount = _interopRequireDefault(require("../query-browser/QueryStatusCount"));
10
- var _jsxRuntime = require("react/jsx-runtime");
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
- /**
13
- * Footer component for QueryBrowserModal following composition principles
14
- *
15
- * Applied principles:
16
- * - Decompose by Responsibility: Dedicated footer component for filter controls
17
- * - Prefer Composition over Configuration: Specialized footer matching DataEditorMode pattern
18
- * - Extract Reusable Logic: Consistent footer styling across modal types
19
- */
20
- function QueryBrowserFooter({
21
- activeFilter,
22
- onFilterChange,
23
- isFloatingMode = true,
24
- // Default to floating mode if not specified
25
- size = "default"
26
- }) {
27
- // Use safe area insets with a minimum bottom padding of 16 for docked mode
28
- // This ensures proper spacing even on resized simulators or devices without home indicator
29
- const insets = (0, _sharedUi.useSafeAreaInsets)({
30
- minBottom: 16
31
- });
32
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ToolFooter, {
33
- floating: isFloatingMode,
34
- safeArea: false,
35
- paddingBottom: !isFloatingMode ? insets.bottom : 0,
36
- style: styles.filterFooter,
37
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
38
- style: styles.filterContainer,
39
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_QueryStatusCount.default, {
40
- activeFilter: activeFilter,
41
- onFilterChange: onFilterChange,
42
- size: size
43
- })
44
- })
45
- });
46
- }
47
- const styles = _reactNative.StyleSheet.create({
48
- filterFooter: {
49
- paddingTop: 8,
50
- paddingHorizontal: 0
51
- },
52
- filterContainer: {
53
- minHeight: 32,
54
- justifyContent: "center"
55
- }
56
- });
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.QueryBrowserFooter=QueryBrowserFooter;var _reactNative=require("react-native");var _sharedUi=require("@buoy-gg/shared-ui");var _QueryStatusCount=_interopRequireDefault(require("../query-browser/QueryStatusCount"));var _jsxRuntime=require("react/jsx-runtime");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function QueryBrowserFooter({activeFilter:e,onFilterChange:r,isFloatingMode:t=true,size:o="default"}){const i=(0,_sharedUi.useSafeAreaInsets)({minBottom:16});return(0,_jsxRuntime.jsx)(_sharedUi.ToolFooter,{floating:t,safeArea:false,paddingBottom:!t?i.bottom:0,style:styles.filterFooter,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.filterContainer,children:(0,_jsxRuntime.jsx)(_QueryStatusCount.default,{activeFilter:e,onFilterChange:r,size:o})})})}const styles=_reactNative.StyleSheet.create({filterFooter:{paddingTop:8,paddingHorizontal:0},filterContainer:{minHeight:32,justifyContent:"center"}});