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