@buoy-gg/network 7.0.33 → 7.0.35
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/lib/commonjs/network/components/NetworkCopySettingsView.js +12 -123
- package/lib/commonjs/network/components/NetworkEventDetailView.js +6 -6
- package/lib/commonjs/network/components/NetworkEventItemCompact.js +3 -3
- package/lib/commonjs/network/components/NetworkFilterViewV3.js +3 -3
- package/lib/commonjs/network/components/NetworkHeaderLive.js +2 -2
- package/lib/commonjs/network/components/NetworkListScreen.js +4 -10
- package/lib/commonjs/network/components/NetworkModal.js +18 -68
- package/lib/commonjs/network/components/NetworkOverrideEditor.js +1 -1
- package/lib/commonjs/network/components/NetworkOverridesScreen.js +1 -1
- package/lib/commonjs/network/components/NetworkSavedScreen.js +2 -5
- package/lib/commonjs/network/components/response-editor/Explorer.js +13 -13
- package/lib/commonjs/preset.js +6 -21
- package/lib/module/network/components/NetworkCopySettingsView.js +15 -126
- package/lib/module/network/components/NetworkEventDetailView.js +7 -7
- package/lib/module/network/components/NetworkEventItemCompact.js +4 -4
- package/lib/module/network/components/NetworkFilterViewV3.js +4 -4
- package/lib/module/network/components/NetworkHeaderLive.js +3 -3
- package/lib/module/network/components/NetworkListScreen.js +5 -11
- package/lib/module/network/components/NetworkModal.js +20 -70
- package/lib/module/network/components/NetworkOverrideEditor.js +2 -2
- package/lib/module/network/components/NetworkOverridesScreen.js +2 -2
- package/lib/module/network/components/NetworkSavedScreen.js +3 -6
- package/lib/module/network/components/response-editor/Explorer.js +14 -14
- package/lib/module/preset.js +6 -20
- package/lib/typescript/network/components/NetworkCopySettingsView.d.ts.map +1 -1
- package/lib/typescript/network/components/NetworkEventDetailView.d.ts.map +1 -1
- package/lib/typescript/network/components/NetworkEventItemCompact.d.ts.map +1 -1
- package/lib/typescript/network/components/NetworkFilterViewV3.d.ts.map +1 -1
- package/lib/typescript/network/components/NetworkHeaderLive.d.ts.map +1 -1
- package/lib/typescript/network/components/NetworkListScreen.d.ts.map +1 -1
- package/lib/typescript/network/components/NetworkModal.d.ts.map +1 -1
- package/lib/typescript/network/components/NetworkOverrideEditor.d.ts.map +1 -1
- package/lib/typescript/network/components/NetworkOverridesScreen.d.ts.map +1 -1
- package/lib/typescript/network/components/NetworkSavedScreen.d.ts.map +1 -1
- package/lib/typescript/preset.d.ts +2 -8
- package/lib/typescript/preset.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { DynamicFilterView, macOSColors, FileText, FileCode, Link, Zap, Settings, Hash, Eye,
|
|
3
|
+
import { DynamicFilterView, macOSColors, FileText, FileCode, Link, Zap, Settings, Hash, Eye, ToolbarCopyButton, formatRelativeTime, useFeatureGate, ProFeatureBanner, ExportPreview, monoFont } from "@buoy-gg/shared-ui";
|
|
4
4
|
import { DataViewer } from "@buoy-gg/shared-ui/dataViewer";
|
|
5
5
|
import { useCallback, useMemo, useState } from "react";
|
|
6
|
-
import { Text, StyleSheet, ScrollView, View
|
|
6
|
+
import { Text, StyleSheet, ScrollView, View } from "react-native";
|
|
7
7
|
import { useTickEveryMinute } from "../hooks/useTickEveryMinute";
|
|
8
|
-
import { jsx as _jsx,
|
|
8
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
9
|
export const DEFAULT_COPY_SETTINGS = {
|
|
10
10
|
includeMethod: true,
|
|
11
11
|
includeStatus: true,
|
|
@@ -541,62 +541,16 @@ export function NetworkCopySettingsView({
|
|
|
541
541
|
const generatePreviewContent = useCallback(() => {
|
|
542
542
|
const dataSource = hasLiveData ? events : [mockRequestData];
|
|
543
543
|
const requestCount = dataSource.length;
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
style: styles.expandButtonContent,
|
|
555
|
-
children: [/*#__PURE__*/_jsx(Eye, {
|
|
556
|
-
size: 16,
|
|
557
|
-
color: macOSColors.semantic.info
|
|
558
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
559
|
-
style: styles.expandButtonTextContainer,
|
|
560
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
561
|
-
style: styles.expandButtonTitle,
|
|
562
|
-
children: "Show Preview"
|
|
563
|
-
}), /*#__PURE__*/_jsxs(Text, {
|
|
564
|
-
style: styles.expandButtonSubtitle,
|
|
565
|
-
children: [requestCount, " request", requestCount !== 1 ? 's' : '', " \u2022 ~", formatBytes(estimatedSize)]
|
|
566
|
-
})]
|
|
567
|
-
}), /*#__PURE__*/_jsx(ChevronDown, {
|
|
568
|
-
size: 16,
|
|
569
|
-
color: macOSColors.text.muted
|
|
570
|
-
})]
|
|
571
|
-
})
|
|
572
|
-
}), sizeWarningLevel !== 'none' && /*#__PURE__*/_jsxs(View, {
|
|
573
|
-
style: [styles.sizeWarning, sizeWarningLevel === 'danger' && styles.sizeWarningDanger],
|
|
574
|
-
children: [/*#__PURE__*/_jsx(AlertTriangle, {
|
|
575
|
-
size: 12,
|
|
576
|
-
color: warningColor
|
|
577
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
578
|
-
style: [styles.sizeWarningText, {
|
|
579
|
-
color: warningColor
|
|
580
|
-
}],
|
|
581
|
-
children: sizeWarningLevel === 'danger' ? 'Very large payload - may cause performance issues' : 'Large payload - preview may be slow'
|
|
582
|
-
})]
|
|
583
|
-
})]
|
|
584
|
-
});
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
// Expanded state - show collapse button + actual content
|
|
588
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
589
|
-
children: [/*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
590
|
-
style: styles.collapseButton,
|
|
591
|
-
onPress: () => setIsPreviewExpanded(false),
|
|
592
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
593
|
-
style: styles.collapseButtonText,
|
|
594
|
-
children: "Hide Preview"
|
|
595
|
-
}), /*#__PURE__*/_jsx(ChevronUp, {
|
|
596
|
-
size: 14,
|
|
597
|
-
color: macOSColors.text.secondary
|
|
598
|
-
})]
|
|
599
|
-
}), generateExpandedPreviewContent()]
|
|
544
|
+
return /*#__PURE__*/_jsx(ExportPreview, {
|
|
545
|
+
expanded: isPreviewExpanded,
|
|
546
|
+
onExpandedChange: setIsPreviewExpanded,
|
|
547
|
+
summary: `${requestCount} request${requestCount !== 1 ? "s" : ""} • ~${formatBytes(estimatedSize)}`,
|
|
548
|
+
warningLevel: sizeWarningLevel,
|
|
549
|
+
warningText: {
|
|
550
|
+
warning: "Large payload - preview may be slow",
|
|
551
|
+
danger: "Very large payload - may cause performance issues"
|
|
552
|
+
},
|
|
553
|
+
renderBody: generateExpandedPreviewContent
|
|
600
554
|
});
|
|
601
555
|
}, [settings, hasLiveData, events, mockRequestData, isPreviewExpanded, estimatedSize, sizeWarningLevel, generateExpandedPreviewContent]);
|
|
602
556
|
|
|
@@ -767,13 +721,13 @@ const styles = StyleSheet.create({
|
|
|
767
721
|
maxHeight: 300
|
|
768
722
|
},
|
|
769
723
|
markdownText: {
|
|
770
|
-
fontFamily:
|
|
724
|
+
fontFamily: monoFont,
|
|
771
725
|
fontSize: 11,
|
|
772
726
|
color: macOSColors.text.primary,
|
|
773
727
|
lineHeight: 18
|
|
774
728
|
},
|
|
775
729
|
plaintextText: {
|
|
776
|
-
fontFamily:
|
|
730
|
+
fontFamily: monoFont,
|
|
777
731
|
fontSize: 11,
|
|
778
732
|
color: macOSColors.text.primary,
|
|
779
733
|
lineHeight: 18
|
|
@@ -785,71 +739,6 @@ const styles = StyleSheet.create({
|
|
|
785
739
|
marginRight: 8
|
|
786
740
|
},
|
|
787
741
|
// Collapsible preview styles
|
|
788
|
-
collapsedPreview: {
|
|
789
|
-
gap: 8
|
|
790
|
-
},
|
|
791
|
-
expandButton: {
|
|
792
|
-
backgroundColor: macOSColors.background.input,
|
|
793
|
-
borderRadius: 8,
|
|
794
|
-
borderWidth: 1,
|
|
795
|
-
borderColor: macOSColors.border.default,
|
|
796
|
-
padding: 12
|
|
797
|
-
},
|
|
798
|
-
expandButtonContent: {
|
|
799
|
-
flexDirection: 'row',
|
|
800
|
-
alignItems: 'center',
|
|
801
|
-
gap: 10
|
|
802
|
-
},
|
|
803
|
-
expandButtonTextContainer: {
|
|
804
|
-
flex: 1
|
|
805
|
-
},
|
|
806
|
-
expandButtonTitle: {
|
|
807
|
-
fontSize: 13,
|
|
808
|
-
fontWeight: '600',
|
|
809
|
-
color: macOSColors.text.primary
|
|
810
|
-
},
|
|
811
|
-
expandButtonSubtitle: {
|
|
812
|
-
fontSize: 11,
|
|
813
|
-
color: macOSColors.text.secondary,
|
|
814
|
-
marginTop: 2
|
|
815
|
-
},
|
|
816
|
-
collapseButton: {
|
|
817
|
-
flexDirection: 'row',
|
|
818
|
-
alignItems: 'center',
|
|
819
|
-
justifyContent: 'center',
|
|
820
|
-
gap: 6,
|
|
821
|
-
paddingVertical: 8,
|
|
822
|
-
marginBottom: 8,
|
|
823
|
-
backgroundColor: macOSColors.background.hover,
|
|
824
|
-
borderRadius: 6,
|
|
825
|
-
borderWidth: 1,
|
|
826
|
-
borderColor: macOSColors.border.default
|
|
827
|
-
},
|
|
828
|
-
collapseButtonText: {
|
|
829
|
-
fontSize: 12,
|
|
830
|
-
fontWeight: '500',
|
|
831
|
-
color: macOSColors.text.secondary
|
|
832
|
-
},
|
|
833
|
-
sizeWarning: {
|
|
834
|
-
flexDirection: 'row',
|
|
835
|
-
alignItems: 'center',
|
|
836
|
-
gap: 6,
|
|
837
|
-
paddingHorizontal: 10,
|
|
838
|
-
paddingVertical: 6,
|
|
839
|
-
backgroundColor: macOSColors.semantic.warningBackground,
|
|
840
|
-
borderRadius: 6,
|
|
841
|
-
borderWidth: 1,
|
|
842
|
-
borderColor: macOSColors.semantic.warning + '30'
|
|
843
|
-
},
|
|
844
|
-
sizeWarningDanger: {
|
|
845
|
-
backgroundColor: macOSColors.semantic.errorBackground,
|
|
846
|
-
borderColor: macOSColors.semantic.error + '30'
|
|
847
|
-
},
|
|
848
|
-
sizeWarningText: {
|
|
849
|
-
fontSize: 11,
|
|
850
|
-
fontWeight: '500',
|
|
851
|
-
flex: 1
|
|
852
|
-
},
|
|
853
742
|
// Gated container styles for free users
|
|
854
743
|
gatedContainer: {
|
|
855
744
|
flex: 1,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useState, useEffect, useMemo, memo } from "react";
|
|
4
4
|
import { View, Text, StyleSheet, ScrollView, TouchableOpacity } from "react-native";
|
|
5
|
-
import { Clock, Upload, Download, AlertCircle, ChevronDown, ChevronUp, Lock, Unlock, FileJson, Filter, Globe, Link, Copy, FlaskConical, InlineCopyButton, macOSColors, night, useFeatureGate, UpgradeModal } from "@buoy-gg/shared-ui";
|
|
5
|
+
import { Clock, Upload, Download, AlertCircle, ChevronDown, ChevronUp, Lock, Unlock, FileJson, Filter, Globe, Link, Copy, FlaskConical, InlineCopyButton, macOSColors, night, useFeatureGate, UpgradeModal, monoFont } from "@buoy-gg/shared-ui";
|
|
6
6
|
import { formatBytes, formatDuration, formatHttpStatus } from "../utils/formatting";
|
|
7
7
|
import { formatRelativeTime } from "@buoy-gg/shared-ui";
|
|
8
8
|
import { DataViewer } from "@buoy-gg/shared-ui/dataViewer";
|
|
@@ -869,12 +869,12 @@ const styles = StyleSheet.create({
|
|
|
869
869
|
urlPath: {
|
|
870
870
|
color: night.color.textSecondary,
|
|
871
871
|
fontSize: 11,
|
|
872
|
-
fontFamily:
|
|
872
|
+
fontFamily: monoFont
|
|
873
873
|
},
|
|
874
874
|
urlQueryString: {
|
|
875
875
|
color: night.color.info,
|
|
876
876
|
fontSize: 11,
|
|
877
|
-
fontFamily:
|
|
877
|
+
fontFamily: monoFont
|
|
878
878
|
},
|
|
879
879
|
// Query Parameters - Collapsible section
|
|
880
880
|
queryParamsCollapsible: {
|
|
@@ -951,7 +951,7 @@ const styles = StyleSheet.create({
|
|
|
951
951
|
sizeValue: {
|
|
952
952
|
color: night.color.info,
|
|
953
953
|
fontSize: 10,
|
|
954
|
-
fontFamily:
|
|
954
|
+
fontFamily: monoFont,
|
|
955
955
|
fontWeight: "600"
|
|
956
956
|
},
|
|
957
957
|
/* ---- Timing phases ---- */
|
|
@@ -996,7 +996,7 @@ const styles = StyleSheet.create({
|
|
|
996
996
|
width: 72,
|
|
997
997
|
textAlign: "right",
|
|
998
998
|
fontSize: 12,
|
|
999
|
-
fontFamily:
|
|
999
|
+
fontFamily: monoFont,
|
|
1000
1000
|
color: night.color.text
|
|
1001
1001
|
},
|
|
1002
1002
|
// Collapsible section styles
|
|
@@ -1032,7 +1032,7 @@ const styles = StyleSheet.create({
|
|
|
1032
1032
|
collapsibleCount: {
|
|
1033
1033
|
color: night.color.textTertiary,
|
|
1034
1034
|
fontSize: 11.5,
|
|
1035
|
-
fontFamily:
|
|
1035
|
+
fontFamily: monoFont
|
|
1036
1036
|
},
|
|
1037
1037
|
collapsibleContent: {
|
|
1038
1038
|
padding: 12
|
|
@@ -1106,7 +1106,7 @@ const styles = StyleSheet.create({
|
|
|
1106
1106
|
filterOptionValue: {
|
|
1107
1107
|
color: night.color.text,
|
|
1108
1108
|
fontSize: 13,
|
|
1109
|
-
fontFamily:
|
|
1109
|
+
fontFamily: monoFont
|
|
1110
1110
|
},
|
|
1111
1111
|
filterToggle: {
|
|
1112
1112
|
paddingHorizontal: 10,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { memo } from "react";
|
|
4
4
|
import { StyleSheet, View, Text } from "react-native";
|
|
5
|
-
import { ChevronRight, Upload, Download, Clock, AlertCircle, Bookmark, FlaskConical, Pin, DevToolsCard, MethodBadge, TypeBadge, night, macOSColors } from "@buoy-gg/shared-ui";
|
|
5
|
+
import { ChevronRight, Upload, Download, Clock, AlertCircle, Bookmark, FlaskConical, Pin, DevToolsCard, MethodBadge, TypeBadge, night, macOSColors, monoFont } from "@buoy-gg/shared-ui";
|
|
6
6
|
import { formatBytes, formatDuration } from "../utils/formatting";
|
|
7
7
|
import { formatRelativeTime } from "@buoy-gg/shared-ui";
|
|
8
8
|
import { useTickEveryMinute } from "../hooks/useTickEveryMinute";
|
|
@@ -316,7 +316,7 @@ const styles = StyleSheet.create({
|
|
|
316
316
|
fontSize: 12,
|
|
317
317
|
color: night.color.text,
|
|
318
318
|
lineHeight: 16,
|
|
319
|
-
fontFamily:
|
|
319
|
+
fontFamily: monoFont
|
|
320
320
|
},
|
|
321
321
|
rightSection: {
|
|
322
322
|
flexDirection: "row",
|
|
@@ -331,7 +331,7 @@ const styles = StyleSheet.create({
|
|
|
331
331
|
bottomRightText: {
|
|
332
332
|
fontSize: 9,
|
|
333
333
|
color: night.color.textTertiary,
|
|
334
|
-
fontFamily:
|
|
334
|
+
fontFamily: monoFont
|
|
335
335
|
},
|
|
336
336
|
statusBadge: {
|
|
337
337
|
paddingHorizontal: 4,
|
|
@@ -387,7 +387,7 @@ const styles = StyleSheet.create({
|
|
|
387
387
|
sizeText: {
|
|
388
388
|
fontSize: 8,
|
|
389
389
|
color: night.color.textSecondary,
|
|
390
|
-
fontFamily:
|
|
390
|
+
fontFamily: monoFont
|
|
391
391
|
},
|
|
392
392
|
clientText: {
|
|
393
393
|
fontSize: 8,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { CheckCircle, Clock, DynamicFilterView, Film, FileJson, FileText, Filter, Globe, Image, macOSColors, night, Music, XCircle } from "@buoy-gg/shared-ui";
|
|
3
|
+
import { CheckCircle, Clock, DynamicFilterView, Film, FileJson, FileText, Filter, Globe, Image, macOSColors, night, Music, XCircle, monoFont } from "@buoy-gg/shared-ui";
|
|
4
4
|
import { useCallback, useMemo, useState } from "react";
|
|
5
5
|
import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
|
|
6
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -384,7 +384,7 @@ const styles = StyleSheet.create({
|
|
|
384
384
|
},
|
|
385
385
|
modeBadgeText: {
|
|
386
386
|
fontSize: 9,
|
|
387
|
-
fontFamily:
|
|
387
|
+
fontFamily: monoFont,
|
|
388
388
|
fontWeight: "700",
|
|
389
389
|
letterSpacing: 0.5
|
|
390
390
|
},
|
|
@@ -398,7 +398,7 @@ const styles = StyleSheet.create({
|
|
|
398
398
|
fontSize: 11,
|
|
399
399
|
fontWeight: "600",
|
|
400
400
|
color: night.color.textSecondary,
|
|
401
|
-
fontFamily:
|
|
401
|
+
fontFamily: monoFont,
|
|
402
402
|
letterSpacing: 0.3
|
|
403
403
|
},
|
|
404
404
|
modeToggleGroup: {
|
|
@@ -424,7 +424,7 @@ const styles = StyleSheet.create({
|
|
|
424
424
|
fontSize: 11,
|
|
425
425
|
fontWeight: "700",
|
|
426
426
|
color: night.color.textSecondary,
|
|
427
|
-
fontFamily:
|
|
427
|
+
fontFamily: monoFont,
|
|
428
428
|
letterSpacing: 0.3
|
|
429
429
|
},
|
|
430
430
|
modeToggleButtonTextActive: {
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
|
|
22
|
-
import { Bookmark, CheckCircle, XCircle, Clock, Copy, Pin, Trash2, CopyButton, macOSColors, night, useLimit } from "@buoy-gg/shared-ui";
|
|
22
|
+
import { Bookmark, CheckCircle, XCircle, Clock, Copy, Pin, Trash2, CopyButton, macOSColors, night, useLimit, monoFont } from "@buoy-gg/shared-ui";
|
|
23
23
|
import { networkEventStore } from "../utils/networkEventStore";
|
|
24
24
|
import { flagsForEventId, networkSavedStore, MAX_PINNED, MAX_SAVED } from "../utils/networkSavedStore";
|
|
25
25
|
import { useNetworkSaved } from "../hooks/useNetworkSaved";
|
|
@@ -322,7 +322,7 @@ const styles = StyleSheet.create({
|
|
|
322
322
|
headerChipValue: {
|
|
323
323
|
fontSize: 12,
|
|
324
324
|
fontWeight: "600",
|
|
325
|
-
fontFamily:
|
|
325
|
+
fontFamily: monoFont
|
|
326
326
|
},
|
|
327
327
|
headerActionButton: {
|
|
328
328
|
width: 32,
|
|
@@ -361,6 +361,6 @@ const styles = StyleSheet.create({
|
|
|
361
361
|
color: night.color.onAccent,
|
|
362
362
|
fontSize: 9,
|
|
363
363
|
fontWeight: "700",
|
|
364
|
-
fontFamily:
|
|
364
|
+
fontFamily: monoFont
|
|
365
365
|
}
|
|
366
366
|
});
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
import { useCallback } from "react";
|
|
16
16
|
import { FlatList, StyleSheet, Text, TouchableOpacity, View } from "react-native";
|
|
17
|
-
import { FlaskConical, Pin, Power, macOSColors, ToolEmptyState, resolveListEmptyState } from "@buoy-gg/shared-ui";
|
|
17
|
+
import { FlaskConical, Pin, Power, macOSColors, ToolEmptyState, resolveListEmptyState, EVENT_LIST_PRESET, monoFont } from "@buoy-gg/shared-ui";
|
|
18
18
|
import { NetworkEventItemCompact } from "./NetworkEventItemCompact";
|
|
19
19
|
import { NetworkUpgradeBanner } from "./NetworkUpgradeBanner";
|
|
20
20
|
import { useNetworkEventList } from "../hooks/useNetworkEventList";
|
|
@@ -278,10 +278,8 @@ export function NetworkListScreen({
|
|
|
278
278
|
showsVerticalScrollIndicator: true
|
|
279
279
|
// Clipped cells falsely fail Detox's hittability check (known
|
|
280
280
|
// RN+Detox issue), so e2e bundles (Metro started with
|
|
281
|
-
// EXPO_PUBLIC_E2E=1) turn clipping off
|
|
282
|
-
// guarded so a non-inlining bundler keeps the prod behavior.
|
|
281
|
+
// EXPO_PUBLIC_E2E=1) turn clipping off — see EVENT_LIST_PRESET.
|
|
283
282
|
,
|
|
284
|
-
removeClippedSubviews: !(typeof process !== "undefined" && process.env?.EXPO_PUBLIC_E2E),
|
|
285
283
|
onEndReachedThreshold: 0.8
|
|
286
284
|
// The list OWNS scrolling (NetworkModal passes
|
|
287
285
|
// disableScrollWrapper while this screen is visible) so FlatList
|
|
@@ -290,18 +288,14 @@ export function NetworkListScreen({
|
|
|
290
288
|
// rows: at the store's 500-event cap that measured 17 JS FPS /
|
|
291
289
|
// 133% CPU / 1.4GB vs ~53 JS FPS / 52% / 360MB virtualized
|
|
292
290
|
// (buoy-optimize batch 2026-07-06, batch-1783396983529-6l7w).
|
|
293
|
-
// Window/batch values are the batch's "tuned" winner.
|
|
291
|
+
// Window/batch values are the batch's "tuned" winner (EVENT_LIST_PRESET).
|
|
294
292
|
,
|
|
295
293
|
scrollEnabled: true,
|
|
296
|
-
|
|
297
|
-
maxToRenderPerBatch: 8,
|
|
298
|
-
windowSize: 5,
|
|
299
|
-
updateCellsBatchingPeriod: 50
|
|
294
|
+
...EVENT_LIST_PRESET,
|
|
300
295
|
// Saving a request from the detail view changes a row's glyph
|
|
301
296
|
// without changing `data`. VirtualizedList is a PureComponent, so
|
|
302
297
|
// the Set has to be declared as a re-render marker rather than
|
|
303
298
|
// relying on `renderItem` getting a fresh identity.
|
|
304
|
-
,
|
|
305
299
|
extraData: savedLiveIds,
|
|
306
300
|
"sentry-label": "ignore network events list",
|
|
307
301
|
ListFooterComponent: renderListFooter
|
|
@@ -373,7 +367,7 @@ const styles = StyleSheet.create({
|
|
|
373
367
|
fontSize: 10,
|
|
374
368
|
fontWeight: "700",
|
|
375
369
|
letterSpacing: 0.6,
|
|
376
|
-
fontFamily:
|
|
370
|
+
fontFamily: monoFont
|
|
377
371
|
},
|
|
378
372
|
pinnedClear: {
|
|
379
373
|
paddingHorizontal: 6,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useState, useRef, useEffect, useCallback } from "react";
|
|
4
|
-
import { View, StyleSheet, TouchableOpacity
|
|
5
|
-
import { Search, Filter, Bookmark,
|
|
4
|
+
import { View, StyleSheet, TouchableOpacity } from "react-native";
|
|
5
|
+
import { Search, Filter, Bookmark, JsModal, ModalHeader, devToolsStorageKeys, macOSColors, night, persistentStorage, NightSegmented, useFeatureGate, UpgradeModal, PowerToggleButton, useIgnoredPatterns, windowDragProps } from "@buoy-gg/shared-ui";
|
|
6
6
|
import { NetworkFilterViewV3 } from "./NetworkFilterViewV3";
|
|
7
7
|
import { TickProvider } from "../hooks/useTickEveryMinute";
|
|
8
8
|
import { NetworkEventDetailView } from "./NetworkEventDetailView";
|
|
@@ -447,53 +447,24 @@ function NetworkModalInner({
|
|
|
447
447
|
onBack: onBack
|
|
448
448
|
}), /*#__PURE__*/_jsx(ModalHeader.Content, {
|
|
449
449
|
title: "",
|
|
450
|
-
children: isSearchActive ? /*#__PURE__*/
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
"sentry-label": "ignore network search header"
|
|
467
|
-
|
|
468
|
-
testID: "buoy-network-search-input",
|
|
469
|
-
autoCapitalize: "none",
|
|
470
|
-
autoCorrect: false,
|
|
471
|
-
returnKeyType: "search"
|
|
472
|
-
}), searchText.length > 0 ? /*#__PURE__*/_jsx(TouchableOpacity
|
|
473
|
-
// react-native-web delays press-in ~50ms by default (native
|
|
474
|
-
// fires it immediately), which would put it AFTER the blur.
|
|
475
|
-
, {
|
|
476
|
-
delayPressIn: 0,
|
|
477
|
-
onPressIn: () => {
|
|
478
|
-
clearPressRef.current = true;
|
|
479
|
-
},
|
|
480
|
-
onPressOut: () => {
|
|
481
|
-
clearPressRef.current = false;
|
|
482
|
-
},
|
|
483
|
-
onPress: () => {
|
|
484
|
-
handleSearch("");
|
|
485
|
-
setIsSearchActive(false);
|
|
486
|
-
},
|
|
487
|
-
"sentry-label": "ignore clear search header",
|
|
488
|
-
style: styles.headerSearchClear,
|
|
489
|
-
accessibilityRole: "button",
|
|
490
|
-
accessibilityLabel: "Clear search",
|
|
491
|
-
testID: "buoy-network-search-clear",
|
|
492
|
-
children: /*#__PURE__*/_jsx(X, {
|
|
493
|
-
size: 14,
|
|
494
|
-
color: night.color.textSecondary
|
|
495
|
-
})
|
|
496
|
-
}) : null]
|
|
450
|
+
children: isSearchActive ? /*#__PURE__*/_jsx(ModalHeader.Search, {
|
|
451
|
+
value: searchText,
|
|
452
|
+
onChangeText: handleSearch,
|
|
453
|
+
onCancel: () => {
|
|
454
|
+
handleSearch("");
|
|
455
|
+
setIsSearchActive(false);
|
|
456
|
+
},
|
|
457
|
+
onDismiss: () => setIsSearchActive(false),
|
|
458
|
+
dismissOnBlur: true,
|
|
459
|
+
clearOnlyWhenText: true,
|
|
460
|
+
placeholder: "Search URL, method, operation, error...",
|
|
461
|
+
accessibilityLabel: "Search network requests",
|
|
462
|
+
iconSize: 14,
|
|
463
|
+
testID: "buoy-network-search-input",
|
|
464
|
+
clearTestID: "buoy-network-search-clear",
|
|
465
|
+
inputProps: {
|
|
466
|
+
"sentry-label": "ignore network search header"
|
|
467
|
+
}
|
|
497
468
|
}) : /*#__PURE__*/_jsx(NetworkHeaderBadges, {
|
|
498
469
|
activeStatus: filter.status,
|
|
499
470
|
onToggleStatus: toggleStatusFilter,
|
|
@@ -738,27 +709,6 @@ const styles = StyleSheet.create({
|
|
|
738
709
|
},
|
|
739
710
|
// Night chrome — the header is glass over the star field, so the search
|
|
740
711
|
// field and action chips sit on the Everlights dark-glass fill.
|
|
741
|
-
headerSearchContainer: {
|
|
742
|
-
flexDirection: "row",
|
|
743
|
-
alignItems: "center",
|
|
744
|
-
backgroundColor: night.color.surfaceElevated,
|
|
745
|
-
borderRadius: night.radius.row,
|
|
746
|
-
borderWidth: 1,
|
|
747
|
-
borderColor: night.color.border,
|
|
748
|
-
paddingHorizontal: 12,
|
|
749
|
-
paddingVertical: 5
|
|
750
|
-
},
|
|
751
|
-
headerSearchInput: {
|
|
752
|
-
flex: 1,
|
|
753
|
-
color: night.color.text,
|
|
754
|
-
fontSize: 13,
|
|
755
|
-
marginLeft: 6,
|
|
756
|
-
paddingVertical: 2
|
|
757
|
-
},
|
|
758
|
-
headerSearchClear: {
|
|
759
|
-
marginLeft: 6,
|
|
760
|
-
padding: 4
|
|
761
|
-
},
|
|
762
712
|
menuCopyRow: {
|
|
763
713
|
paddingHorizontal: 6
|
|
764
714
|
},
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useMemo, useState } from "react";
|
|
4
4
|
import { ScrollView, StyleSheet, Text, TextInput, TouchableOpacity, View } from "react-native";
|
|
5
|
-
import { ChevronDown, ChevronRight, macOSColors, useSafeAreaInsets } from "@buoy-gg/shared-ui";
|
|
5
|
+
import { ChevronDown, ChevronRight, macOSColors, useSafeAreaInsets, monoFont } from "@buoy-gg/shared-ui";
|
|
6
6
|
import Explorer from "./response-editor/Explorer";
|
|
7
7
|
import { ResponseEditorContext } from "./response-editor/editorContext";
|
|
8
8
|
import { NetworkNumberPrompt } from "./NetworkNumberPrompt";
|
|
@@ -678,7 +678,7 @@ const styles = StyleSheet.create({
|
|
|
678
678
|
paddingVertical: 8,
|
|
679
679
|
color: macOSColors.text.primary,
|
|
680
680
|
fontSize: 12,
|
|
681
|
-
fontFamily:
|
|
681
|
+
fontFamily: monoFont,
|
|
682
682
|
minHeight: 40
|
|
683
683
|
},
|
|
684
684
|
bodyInput: {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useCallback, useEffect, useState } from "react";
|
|
4
4
|
import { ScrollView, StyleSheet, Text, TouchableOpacity, View } from "react-native";
|
|
5
|
-
import { AlertCircle, AlertTriangle, DevToolsCard, EmptyState, MethodBadge, Plus, Trash2, macOSColors, useLimit } from "@buoy-gg/shared-ui";
|
|
5
|
+
import { AlertCircle, AlertTriangle, DevToolsCard, EmptyState, MethodBadge, Plus, Trash2, macOSColors, useLimit, monoFont } from "@buoy-gg/shared-ui";
|
|
6
6
|
import { useOverrideRules } from "../hooks/useOverrideRules";
|
|
7
7
|
import { NetworkOverrideEditor } from "./NetworkOverrideEditor";
|
|
8
8
|
import { overrideRulesStore } from "../overrides/overrideRulesStore";
|
|
@@ -489,7 +489,7 @@ const styles = StyleSheet.create({
|
|
|
489
489
|
fontSize: 12,
|
|
490
490
|
color: macOSColors.text.primary,
|
|
491
491
|
lineHeight: 16,
|
|
492
|
-
fontFamily:
|
|
492
|
+
fontFamily: monoFont
|
|
493
493
|
},
|
|
494
494
|
urlTextOff: {
|
|
495
495
|
color: macOSColors.text.muted
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
import { useState } from "react";
|
|
21
21
|
import { FlatList, StyleSheet, Text, TextInput, View, TouchableOpacity } from "react-native";
|
|
22
|
-
import { Bookmark, CopyButton, Search, macOSColors, useLimit, ToolEmptyState, resolveListEmptyState } from "@buoy-gg/shared-ui";
|
|
22
|
+
import { Bookmark, CopyButton, Search, macOSColors, useLimit, ToolEmptyState, resolveListEmptyState, EVENT_LIST_PRESET, monoFont } from "@buoy-gg/shared-ui";
|
|
23
23
|
import { NetworkEventItemCompact } from "./NetworkEventItemCompact";
|
|
24
24
|
import { NetworkUpgradeBanner } from "./NetworkUpgradeBanner";
|
|
25
25
|
import { generateNetworkCopyText } from "../utils/generateNetworkCopyText";
|
|
@@ -150,11 +150,8 @@ export function NetworkSavedScreen({
|
|
|
150
150
|
keyExtractor: keyExtractor,
|
|
151
151
|
contentContainerStyle: styles.listContent,
|
|
152
152
|
showsVerticalScrollIndicator: true,
|
|
153
|
-
removeClippedSubviews: true,
|
|
154
153
|
scrollEnabled: true,
|
|
155
|
-
|
|
156
|
-
maxToRenderPerBatch: 8,
|
|
157
|
-
windowSize: 5,
|
|
154
|
+
...EVENT_LIST_PRESET,
|
|
158
155
|
extraData: pinnedLiveIds,
|
|
159
156
|
"sentry-label": "ignore saved requests list",
|
|
160
157
|
ListFooterComponent: renderListFooter
|
|
@@ -180,7 +177,7 @@ const styles = StyleSheet.create({
|
|
|
180
177
|
fontSize: 10,
|
|
181
178
|
fontWeight: "700",
|
|
182
179
|
letterSpacing: 0.6,
|
|
183
|
-
fontFamily:
|
|
180
|
+
fontFamily: monoFont
|
|
184
181
|
},
|
|
185
182
|
toolbarButton: {
|
|
186
183
|
width: 26,
|