@buoy-gg/react-query 7.0.41 → 7.0.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -73
- package/lib/commonjs/checkPeer.js +1 -8
- package/lib/commonjs/checkPeer.web.js +1 -3
- package/lib/commonjs/index.js +1 -657
- package/lib/commonjs/preset.js +1 -243
- package/lib/commonjs/react-query/components/DataEditorMode.js +1 -317
- package/lib/commonjs/react-query/components/FilterStatusBadge.js +1 -55
- package/lib/commonjs/react-query/components/MutationBrowserMode.js +1 -52
- package/lib/commonjs/react-query/components/MutationEditorMode.js +1 -276
- package/lib/commonjs/react-query/components/QueryBrowserMode.js +1 -99
- package/lib/commonjs/react-query/components/QueryDebugInfo.js +1 -107
- package/lib/commonjs/react-query/components/QueryFilterViewV3.js +1 -224
- package/lib/commonjs/react-query/components/QuerySelector.js +1 -209
- package/lib/commonjs/react-query/components/ReactQueryDevToolsModal.js +1 -91
- package/lib/commonjs/react-query/components/ReactQuerySection.js +1 -47
- package/lib/commonjs/react-query/components/ReactQueryTracker.js +1 -38
- package/lib/commonjs/react-query/components/WifiToggle.js +1 -51
- package/lib/commonjs/react-query/components/modals/DataEditorModal.js +1 -103
- package/lib/commonjs/react-query/components/modals/MutationBrowserFooter.js +1 -61
- package/lib/commonjs/react-query/components/modals/MutationBrowserModal.js +1 -164
- package/lib/commonjs/react-query/components/modals/MutationEditorModal.js +1 -106
- package/lib/commonjs/react-query/components/modals/QueryBrowserFooter.js +1 -56
- package/lib/commonjs/react-query/components/modals/QueryBrowserModal.js +1 -254
- package/lib/commonjs/react-query/components/modals/ReactQueryModal.js +1 -83
- package/lib/commonjs/react-query/components/modals/ReactQueryModalHeader.js +1 -194
- package/lib/commonjs/react-query/components/modals/SwipeIndicator.js +1 -204
- package/lib/commonjs/react-query/components/query-browser/ActionButton.js +1 -100
- package/lib/commonjs/react-query/components/query-browser/ClearCacheButton.js +1 -53
- package/lib/commonjs/react-query/components/query-browser/Explorer.js +1 -75
- package/lib/commonjs/react-query/components/query-browser/MutationButton.js +1 -190
- package/lib/commonjs/react-query/components/query-browser/MutationDetails.js +1 -124
- package/lib/commonjs/react-query/components/query-browser/MutationDetailsChips.js +1 -68
- package/lib/commonjs/react-query/components/query-browser/MutationInformation.js +1 -118
- package/lib/commonjs/react-query/components/query-browser/MutationStatusCount.js +1 -84
- package/lib/commonjs/react-query/components/query-browser/MutationsList.js +1 -220
- package/lib/commonjs/react-query/components/query-browser/NetworkToggleButton.js +1 -54
- package/lib/commonjs/react-query/components/query-browser/QueryActions.js +1 -124
- package/lib/commonjs/react-query/components/query-browser/QueryBrowser.js +1 -181
- package/lib/commonjs/react-query/components/query-browser/QueryDetails.js +1 -141
- package/lib/commonjs/react-query/components/query-browser/QueryDetailsChip.js +1 -78
- package/lib/commonjs/react-query/components/query-browser/QueryInformation.js +1 -95
- package/lib/commonjs/react-query/components/query-browser/QueryRow.js +1 -96
- package/lib/commonjs/react-query/components/query-browser/QueryStatus.js +1 -167
- package/lib/commonjs/react-query/components/query-browser/QueryStatusCount.js +1 -100
- package/lib/commonjs/react-query/components/query-browser/StorageStatusCount.js +1 -61
- package/lib/commonjs/react-query/components/query-browser/index.js +1 -170
- package/lib/commonjs/react-query/components/query-browser/svgs.js +1 -72
- package/lib/commonjs/react-query/hooks/useActionButtons.js +1 -51
- package/lib/commonjs/react-query/hooks/useAllMutations.js +1 -85
- package/lib/commonjs/react-query/hooks/useAllQueries.js +1 -117
- package/lib/commonjs/react-query/hooks/useModalManager.js +1 -178
- package/lib/commonjs/react-query/hooks/useModalPersistence.js +1 -71
- package/lib/commonjs/react-query/hooks/useMutationActionButtons.js +1 -21
- package/lib/commonjs/react-query/hooks/useQueryStatusCounts.js +1 -114
- package/lib/commonjs/react-query/hooks/useReactQueryState.js +1 -24
- package/lib/commonjs/react-query/hooks/useSelectedMutation.js +1 -30
- package/lib/commonjs/react-query/hooks/useSelectedQuery.js +1 -96
- package/lib/commonjs/react-query/hooks/useStorageQueryCounts.js +1 -28
- package/lib/commonjs/react-query/hooks/useWifiState.js +1 -67
- package/lib/commonjs/react-query/stores/reactQueryEventStore.js +1 -302
- package/lib/commonjs/react-query/sync/dehydrate.js +1 -166
- package/lib/commonjs/react-query/sync/reactQuerySyncAdapter.js +1 -593
- package/lib/commonjs/react-query/sync/snapshotProvider.js +1 -289
- package/lib/commonjs/react-query/sync/useReactQuerySyncAdapter.js +1 -34
- package/lib/commonjs/react-query/types/types.js +1 -14
- package/lib/commonjs/react-query/utils/actions/deleteItem.js +1 -23
- package/lib/commonjs/react-query/utils/actions/emitDevToolsEvent.js +1 -40
- package/lib/commonjs/react-query/utils/actions/invalidate.js +1 -15
- package/lib/commonjs/react-query/utils/actions/refetch.js +1 -17
- package/lib/commonjs/react-query/utils/actions/remove.js +1 -15
- package/lib/commonjs/react-query/utils/actions/reset.js +1 -17
- package/lib/commonjs/react-query/utils/actions/triggerError.js +1 -33
- package/lib/commonjs/react-query/utils/actions/triggerLoading.js +1 -54
- package/lib/commonjs/react-query/utils/deleteNestedDataByPath.js +1 -56
- package/lib/commonjs/react-query/utils/getQueryStatusColor.js +1 -16
- package/lib/commonjs/react-query/utils/getQueryStatusLabel.js +1 -23
- package/lib/commonjs/react-query/utils/getStorageQueryCounts.js +1 -35
- package/lib/commonjs/react-query/utils/modalStorageOperations.js +1 -127
- package/lib/commonjs/react-query/utils/storageQueryUtils.js +1 -149
- package/lib/commonjs/react-query/utils/testIDs.js +1 -61
- package/lib/commonjs/react-query/utils/updateNestedDataByPath.js +1 -61
- package/lib/module/checkPeer.js +1 -8
- package/lib/module/checkPeer.web.js +1 -3
- package/lib/module/index.js +1 -130
- package/lib/module/preset.js +1 -239
- package/lib/module/react-query/components/DataEditorMode.js +1 -311
- package/lib/module/react-query/components/FilterStatusBadge.js +1 -51
- package/lib/module/react-query/components/MutationBrowserMode.js +1 -47
- package/lib/module/react-query/components/MutationEditorMode.js +1 -270
- package/lib/module/react-query/components/QueryBrowserMode.js +1 -94
- package/lib/module/react-query/components/QueryDebugInfo.js +1 -104
- package/lib/module/react-query/components/QueryFilterViewV3.js +1 -221
- package/lib/module/react-query/components/QuerySelector.js +1 -205
- package/lib/module/react-query/components/ReactQueryDevToolsModal.js +1 -87
- package/lib/module/react-query/components/ReactQuerySection.js +1 -43
- package/lib/module/react-query/components/ReactQueryTracker.js +1 -35
- package/lib/module/react-query/components/WifiToggle.js +1 -48
- package/lib/module/react-query/components/modals/DataEditorModal.js +1 -99
- package/lib/module/react-query/components/modals/MutationBrowserFooter.js +1 -56
- package/lib/module/react-query/components/modals/MutationBrowserModal.js +1 -161
- package/lib/module/react-query/components/modals/MutationEditorModal.js +1 -102
- package/lib/module/react-query/components/modals/QueryBrowserFooter.js +1 -51
- package/lib/module/react-query/components/modals/QueryBrowserModal.js +1 -250
- package/lib/module/react-query/components/modals/ReactQueryModal.js +1 -79
- package/lib/module/react-query/components/modals/ReactQueryModalHeader.js +1 -190
- package/lib/module/react-query/components/modals/SwipeIndicator.js +1 -201
- package/lib/module/react-query/components/query-browser/ActionButton.js +1 -96
- package/lib/module/react-query/components/query-browser/ClearCacheButton.js +1 -49
- package/lib/module/react-query/components/query-browser/Explorer.js +1 -70
- package/lib/module/react-query/components/query-browser/MutationButton.js +1 -186
- package/lib/module/react-query/components/query-browser/MutationDetails.js +1 -119
- package/lib/module/react-query/components/query-browser/MutationDetailsChips.js +1 -64
- package/lib/module/react-query/components/query-browser/MutationInformation.js +1 -113
- package/lib/module/react-query/components/query-browser/MutationStatusCount.js +1 -79
- package/lib/module/react-query/components/query-browser/MutationsList.js +1 -215
- package/lib/module/react-query/components/query-browser/NetworkToggleButton.js +1 -50
- package/lib/module/react-query/components/query-browser/QueryActions.js +1 -119
- package/lib/module/react-query/components/query-browser/QueryBrowser.js +1 -176
- package/lib/module/react-query/components/query-browser/QueryDetails.js +1 -136
- package/lib/module/react-query/components/query-browser/QueryDetailsChip.js +1 -74
- package/lib/module/react-query/components/query-browser/QueryInformation.js +1 -90
- package/lib/module/react-query/components/query-browser/QueryRow.js +1 -92
- package/lib/module/react-query/components/query-browser/QueryStatus.js +1 -163
- package/lib/module/react-query/components/query-browser/QueryStatusCount.js +1 -95
- package/lib/module/react-query/components/query-browser/StorageStatusCount.js +1 -56
- package/lib/module/react-query/components/query-browser/index.js +1 -22
- package/lib/module/react-query/components/query-browser/svgs.js +1 -64
- package/lib/module/react-query/hooks/useActionButtons.js +1 -46
- package/lib/module/react-query/hooks/useAllMutations.js +1 -82
- package/lib/module/react-query/hooks/useAllQueries.js +1 -114
- package/lib/module/react-query/hooks/useModalManager.js +1 -175
- package/lib/module/react-query/hooks/useModalPersistence.js +1 -67
- package/lib/module/react-query/hooks/useMutationActionButtons.js +1 -17
- package/lib/module/react-query/hooks/useQueryStatusCounts.js +1 -112
- package/lib/module/react-query/hooks/useReactQueryState.js +1 -20
- package/lib/module/react-query/hooks/useSelectedMutation.js +1 -27
- package/lib/module/react-query/hooks/useSelectedQuery.js +1 -92
- package/lib/module/react-query/hooks/useStorageQueryCounts.js +1 -25
- package/lib/module/react-query/hooks/useWifiState.js +1 -64
- package/lib/module/react-query/stores/reactQueryEventStore.js +1 -293
- package/lib/module/react-query/sync/dehydrate.js +1 -156
- package/lib/module/react-query/sync/reactQuerySyncAdapter.js +1 -589
- package/lib/module/react-query/sync/snapshotProvider.js +1 -284
- package/lib/module/react-query/sync/useReactQuerySyncAdapter.js +1 -31
- package/lib/module/react-query/types/types.js +1 -10
- package/lib/module/react-query/utils/actions/deleteItem.js +1 -19
- package/lib/module/react-query/utils/actions/emitDevToolsEvent.js +1 -36
- package/lib/module/react-query/utils/actions/invalidate.js +1 -11
- package/lib/module/react-query/utils/actions/refetch.js +1 -13
- package/lib/module/react-query/utils/actions/remove.js +1 -11
- package/lib/module/react-query/utils/actions/reset.js +1 -13
- package/lib/module/react-query/utils/actions/triggerError.js +1 -29
- package/lib/module/react-query/utils/actions/triggerLoading.js +1 -50
- package/lib/module/react-query/utils/deleteNestedDataByPath.js +1 -51
- package/lib/module/react-query/utils/getQueryStatusColor.js +1 -12
- package/lib/module/react-query/utils/getQueryStatusLabel.js +1 -19
- package/lib/module/react-query/utils/getStorageQueryCounts.js +1 -31
- package/lib/module/react-query/utils/modalStorageOperations.js +1 -117
- package/lib/module/react-query/utils/storageQueryUtils.js +1 -140
- package/lib/module/react-query/utils/testIDs.js +1 -54
- package/lib/module/react-query/utils/updateNestedDataByPath.js +1 -56
- package/lib/web/index.mjs +3 -4
- package/package.json +4 -7
- package/lib/typescript/checkPeer.d.ts.map +0 -1
- package/lib/typescript/checkPeer.web.d.ts.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/preset.d.ts.map +0 -1
- package/lib/typescript/react-query/components/DataEditorMode.d.ts.map +0 -1
- package/lib/typescript/react-query/components/FilterStatusBadge.d.ts.map +0 -1
- package/lib/typescript/react-query/components/MutationBrowserMode.d.ts.map +0 -1
- package/lib/typescript/react-query/components/MutationEditorMode.d.ts.map +0 -1
- package/lib/typescript/react-query/components/QueryBrowserMode.d.ts.map +0 -1
- package/lib/typescript/react-query/components/QueryDebugInfo.d.ts.map +0 -1
- package/lib/typescript/react-query/components/QueryFilterViewV3.d.ts.map +0 -1
- package/lib/typescript/react-query/components/QuerySelector.d.ts.map +0 -1
- package/lib/typescript/react-query/components/ReactQueryDevToolsModal.d.ts.map +0 -1
- package/lib/typescript/react-query/components/ReactQuerySection.d.ts.map +0 -1
- package/lib/typescript/react-query/components/ReactQueryTracker.d.ts.map +0 -1
- package/lib/typescript/react-query/components/WifiToggle.d.ts.map +0 -1
- package/lib/typescript/react-query/components/modals/DataEditorModal.d.ts.map +0 -1
- package/lib/typescript/react-query/components/modals/MutationBrowserFooter.d.ts.map +0 -1
- package/lib/typescript/react-query/components/modals/MutationBrowserModal.d.ts.map +0 -1
- package/lib/typescript/react-query/components/modals/MutationEditorModal.d.ts.map +0 -1
- package/lib/typescript/react-query/components/modals/QueryBrowserFooter.d.ts.map +0 -1
- package/lib/typescript/react-query/components/modals/QueryBrowserModal.d.ts.map +0 -1
- package/lib/typescript/react-query/components/modals/ReactQueryModal.d.ts.map +0 -1
- package/lib/typescript/react-query/components/modals/ReactQueryModalHeader.d.ts.map +0 -1
- package/lib/typescript/react-query/components/modals/SwipeIndicator.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/ActionButton.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/ClearCacheButton.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/Explorer.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/MutationButton.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/MutationDetails.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/MutationDetailsChips.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/MutationInformation.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/MutationStatusCount.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/MutationsList.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/NetworkToggleButton.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/QueryActions.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/QueryBrowser.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/QueryDetails.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/QueryDetailsChip.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/QueryInformation.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/QueryRow.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/QueryStatus.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/QueryStatusCount.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/StorageStatusCount.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/index.d.ts.map +0 -1
- package/lib/typescript/react-query/components/query-browser/svgs.d.ts.map +0 -1
- package/lib/typescript/react-query/hooks/useActionButtons.d.ts.map +0 -1
- package/lib/typescript/react-query/hooks/useAllMutations.d.ts.map +0 -1
- package/lib/typescript/react-query/hooks/useAllQueries.d.ts.map +0 -1
- package/lib/typescript/react-query/hooks/useModalManager.d.ts.map +0 -1
- package/lib/typescript/react-query/hooks/useModalPersistence.d.ts.map +0 -1
- package/lib/typescript/react-query/hooks/useMutationActionButtons.d.ts.map +0 -1
- package/lib/typescript/react-query/hooks/useQueryStatusCounts.d.ts.map +0 -1
- package/lib/typescript/react-query/hooks/useReactQueryState.d.ts.map +0 -1
- package/lib/typescript/react-query/hooks/useSelectedMutation.d.ts.map +0 -1
- package/lib/typescript/react-query/hooks/useSelectedQuery.d.ts.map +0 -1
- package/lib/typescript/react-query/hooks/useStorageQueryCounts.d.ts.map +0 -1
- package/lib/typescript/react-query/hooks/useWifiState.d.ts.map +0 -1
- package/lib/typescript/react-query/stores/reactQueryEventStore.d.ts.map +0 -1
- package/lib/typescript/react-query/sync/dehydrate.d.ts.map +0 -1
- package/lib/typescript/react-query/sync/reactQuerySyncAdapter.d.ts.map +0 -1
- package/lib/typescript/react-query/sync/snapshotProvider.d.ts.map +0 -1
- package/lib/typescript/react-query/sync/useReactQuerySyncAdapter.d.ts.map +0 -1
- package/lib/typescript/react-query/types/types.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/actions/deleteItem.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/actions/emitDevToolsEvent.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/actions/invalidate.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/actions/refetch.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/actions/remove.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/actions/reset.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/actions/triggerError.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/actions/triggerLoading.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/deleteNestedDataByPath.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/getQueryStatusColor.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/getQueryStatusLabel.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/getStorageQueryCounts.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/modalStorageOperations.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/storageQueryUtils.d.ts.map +0 -1
- package/lib/typescript/react-query/utils/testIDs.d.ts.map +0 -1
- 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"}});
|