react-native-debug-toolkit 0.6.4 → 2.1.0
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/LICENSE +21 -0
- package/README.md +149 -211
- package/README.zh-CN.md +150 -171
- package/lib/commonjs/components/ClipboardTab.js +91 -0
- package/lib/commonjs/components/ClipboardTab.js.map +1 -0
- package/lib/commonjs/components/ConsoleLogTab.js +162 -0
- package/lib/commonjs/components/ConsoleLogTab.js.map +1 -0
- package/lib/commonjs/components/DebugPanel.js +230 -0
- package/lib/commonjs/components/DebugPanel.js.map +1 -0
- package/lib/commonjs/components/DebugView.js +66 -0
- package/lib/commonjs/components/DebugView.js.map +1 -0
- package/lib/commonjs/components/EnvironmentTab.js +287 -0
- package/lib/commonjs/components/EnvironmentTab.js.map +1 -0
- package/lib/commonjs/components/FeatureTabBar.js +182 -0
- package/lib/commonjs/components/FeatureTabBar.js.map +1 -0
- package/lib/commonjs/components/FloatIcon.js +187 -0
- package/lib/commonjs/components/FloatIcon.js.map +1 -0
- package/lib/commonjs/components/FloatPanelView.js +214 -0
- package/lib/commonjs/components/FloatPanelView.js.map +1 -0
- package/lib/commonjs/components/NavigationLogTab.js +131 -0
- package/lib/commonjs/components/NavigationLogTab.js.map +1 -0
- package/lib/commonjs/components/NetworkLogTab.js +404 -0
- package/lib/commonjs/components/NetworkLogTab.js.map +1 -0
- package/lib/commonjs/components/ThirdPartyLibsTab.js +97 -0
- package/lib/commonjs/components/ThirdPartyLibsTab.js.map +1 -0
- package/lib/commonjs/components/TrackLogTab.js +230 -0
- package/lib/commonjs/components/TrackLogTab.js.map +1 -0
- package/lib/commonjs/components/ZustandLogTab.js +311 -0
- package/lib/commonjs/components/ZustandLogTab.js.map +1 -0
- package/lib/commonjs/components/shared/CollapsibleSection.js +84 -0
- package/lib/commonjs/components/shared/CollapsibleSection.js.map +1 -0
- package/lib/commonjs/components/shared/CopyButton.js +64 -0
- package/lib/commonjs/components/shared/CopyButton.js.map +1 -0
- package/lib/commonjs/components/shared/JsonView.js +157 -0
- package/lib/commonjs/components/shared/JsonView.js.map +1 -0
- package/lib/commonjs/components/shared/LogListScreen.js +174 -0
- package/lib/commonjs/components/shared/LogListScreen.js.map +1 -0
- package/lib/commonjs/core/DebugToolkit.js +122 -0
- package/lib/commonjs/core/DebugToolkit.js.map +1 -0
- package/lib/commonjs/core/DebugToolkitProvider.js +66 -0
- package/lib/commonjs/core/DebugToolkitProvider.js.map +1 -0
- package/lib/commonjs/features/ClipboardFeature.js +21 -0
- package/lib/commonjs/features/ClipboardFeature.js.map +1 -0
- package/lib/commonjs/features/ConsoleLogFeature.js +115 -0
- package/lib/commonjs/features/ConsoleLogFeature.js.map +1 -0
- package/lib/commonjs/features/EnvironmentFeature.js +160 -0
- package/lib/commonjs/features/EnvironmentFeature.js.map +1 -0
- package/lib/commonjs/features/NavigationLogFeature.js +39 -0
- package/lib/commonjs/features/NavigationLogFeature.js.map +1 -0
- package/lib/commonjs/features/NetworkFeature.js +107 -0
- package/lib/commonjs/features/NetworkFeature.js.map +1 -0
- package/lib/commonjs/features/ThirdPartyLibsFeature.js +51 -0
- package/lib/commonjs/features/ThirdPartyLibsFeature.js.map +1 -0
- package/lib/commonjs/features/TrackFeature.js +34 -0
- package/lib/commonjs/features/TrackFeature.js.map +1 -0
- package/lib/commonjs/features/ZustandLogFeature.js +59 -0
- package/lib/commonjs/features/ZustandLogFeature.js.map +1 -0
- package/lib/commonjs/hooks/useNavigationLogger.js +78 -0
- package/lib/commonjs/hooks/useNavigationLogger.js.map +1 -0
- package/lib/commonjs/hooks/useSlideDetailAnimation.js +53 -0
- package/lib/commonjs/hooks/useSlideDetailAnimation.js.map +1 -0
- package/lib/commonjs/index.js +152 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/initialize.js +84 -0
- package/lib/commonjs/initialize.js.map +1 -0
- package/lib/commonjs/interceptors/networkInterceptor.js +466 -0
- package/lib/commonjs/interceptors/networkInterceptor.js.map +1 -0
- package/lib/commonjs/native/NativeDebugLibs.js +58 -0
- package/lib/commonjs/native/NativeDebugLibs.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/types/index.js +6 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/commonjs/utils/colors.js +48 -0
- package/lib/commonjs/utils/colors.js.map +1 -0
- package/lib/commonjs/utils/copyToComputer.js +97 -0
- package/lib/commonjs/utils/copyToComputer.js.map +1 -0
- package/lib/commonjs/utils/createChannelFeature.js +48 -0
- package/lib/commonjs/utils/createChannelFeature.js.map +1 -0
- package/lib/commonjs/utils/createEventChannel.js +21 -0
- package/lib/commonjs/utils/createEventChannel.js.map +1 -0
- package/lib/commonjs/utils/createObservableStore.js +38 -0
- package/lib/commonjs/utils/createObservableStore.js.map +1 -0
- package/lib/commonjs/utils/layout.js +8 -0
- package/lib/commonjs/utils/layout.js.map +1 -0
- package/lib/commonjs/utils/safeStringify.js +27 -0
- package/lib/commonjs/utils/safeStringify.js.map +1 -0
- package/lib/commonjs/utils/urlRewriterRegistry.js +14 -0
- package/lib/commonjs/utils/urlRewriterRegistry.js.map +1 -0
- package/lib/module/components/ClipboardTab.js +86 -0
- package/lib/module/components/ClipboardTab.js.map +1 -0
- package/lib/module/components/ConsoleLogTab.js +157 -0
- package/lib/module/components/ConsoleLogTab.js.map +1 -0
- package/lib/module/components/DebugPanel.js +225 -0
- package/lib/module/components/DebugPanel.js.map +1 -0
- package/lib/module/components/DebugView.js +61 -0
- package/lib/module/components/DebugView.js.map +1 -0
- package/lib/module/components/EnvironmentTab.js +282 -0
- package/lib/module/components/EnvironmentTab.js.map +1 -0
- package/lib/module/components/FeatureTabBar.js +177 -0
- package/lib/module/components/FeatureTabBar.js.map +1 -0
- package/lib/module/components/FloatIcon.js +182 -0
- package/lib/module/components/FloatIcon.js.map +1 -0
- package/lib/module/components/FloatPanelView.js +209 -0
- package/lib/module/components/FloatPanelView.js.map +1 -0
- package/lib/module/components/NavigationLogTab.js +126 -0
- package/lib/module/components/NavigationLogTab.js.map +1 -0
- package/lib/module/components/NetworkLogTab.js +399 -0
- package/lib/module/components/NetworkLogTab.js.map +1 -0
- package/lib/module/components/ThirdPartyLibsTab.js +91 -0
- package/lib/module/components/ThirdPartyLibsTab.js.map +1 -0
- package/lib/module/components/TrackLogTab.js +225 -0
- package/lib/module/components/TrackLogTab.js.map +1 -0
- package/lib/module/components/ZustandLogTab.js +306 -0
- package/lib/module/components/ZustandLogTab.js.map +1 -0
- package/lib/module/components/shared/CollapsibleSection.js +78 -0
- package/lib/module/components/shared/CollapsibleSection.js.map +1 -0
- package/lib/module/components/shared/CopyButton.js +58 -0
- package/lib/module/components/shared/CopyButton.js.map +1 -0
- package/lib/module/components/shared/JsonView.js +152 -0
- package/lib/module/components/shared/JsonView.js.map +1 -0
- package/lib/module/components/shared/LogListScreen.js +169 -0
- package/lib/module/components/shared/LogListScreen.js.map +1 -0
- package/lib/module/core/DebugToolkit.js +118 -0
- package/lib/module/core/DebugToolkit.js.map +1 -0
- package/lib/module/core/DebugToolkitProvider.js +60 -0
- package/lib/module/core/DebugToolkitProvider.js.map +1 -0
- package/lib/module/features/ClipboardFeature.js +16 -0
- package/lib/module/features/ClipboardFeature.js.map +1 -0
- package/lib/module/features/ConsoleLogFeature.js +109 -0
- package/lib/module/features/ConsoleLogFeature.js.map +1 -0
- package/lib/module/features/EnvironmentFeature.js +156 -0
- package/lib/module/features/EnvironmentFeature.js.map +1 -0
- package/lib/module/features/NavigationLogFeature.js +32 -0
- package/lib/module/features/NavigationLogFeature.js.map +1 -0
- package/lib/module/features/NetworkFeature.js +101 -0
- package/lib/module/features/NetworkFeature.js.map +1 -0
- package/lib/module/features/ThirdPartyLibsFeature.js +46 -0
- package/lib/module/features/ThirdPartyLibsFeature.js.map +1 -0
- package/lib/module/features/TrackFeature.js +27 -0
- package/lib/module/features/TrackFeature.js.map +1 -0
- package/lib/module/features/ZustandLogFeature.js +53 -0
- package/lib/module/features/ZustandLogFeature.js.map +1 -0
- package/lib/module/hooks/useNavigationLogger.js +74 -0
- package/lib/module/hooks/useNavigationLogger.js.map +1 -0
- package/lib/module/hooks/useSlideDetailAnimation.js +50 -0
- package/lib/module/hooks/useSlideDetailAnimation.js.map +1 -0
- package/lib/module/index.js +28 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/initialize.js +80 -0
- package/lib/module/initialize.js.map +1 -0
- package/lib/module/interceptors/networkInterceptor.js +460 -0
- package/lib/module/interceptors/networkInterceptor.js.map +1 -0
- package/lib/module/native/NativeDebugLibs.js +54 -0
- package/lib/module/native/NativeDebugLibs.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/types/index.js +4 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/utils/colors.js +43 -0
- package/lib/module/utils/colors.js.map +1 -0
- package/lib/module/utils/copyToComputer.js +91 -0
- package/lib/module/utils/copyToComputer.js.map +1 -0
- package/lib/module/utils/createChannelFeature.js +44 -0
- package/lib/module/utils/createChannelFeature.js.map +1 -0
- package/lib/module/utils/createEventChannel.js +17 -0
- package/lib/module/utils/createEventChannel.js.map +1 -0
- package/lib/module/utils/createObservableStore.js +34 -0
- package/lib/module/utils/createObservableStore.js.map +1 -0
- package/lib/module/utils/layout.js +4 -0
- package/lib/module/utils/layout.js.map +1 -0
- package/lib/module/utils/safeStringify.js +23 -0
- package/lib/module/utils/safeStringify.js.map +1 -0
- package/lib/module/utils/urlRewriterRegistry.js +10 -0
- package/lib/module/utils/urlRewriterRegistry.js.map +1 -0
- package/lib/typescript/src/components/ClipboardTab.d.ts +4 -0
- package/lib/typescript/src/components/ClipboardTab.d.ts.map +1 -0
- package/lib/typescript/src/components/ConsoleLogTab.d.ts +4 -0
- package/lib/typescript/src/components/ConsoleLogTab.d.ts.map +1 -0
- package/lib/typescript/src/components/DebugPanel.d.ts +9 -0
- package/lib/typescript/src/components/DebugPanel.d.ts.map +1 -0
- package/lib/typescript/src/components/DebugView.d.ts +19 -0
- package/lib/typescript/src/components/DebugView.d.ts.map +1 -0
- package/lib/typescript/src/components/EnvironmentTab.d.ts +4 -0
- package/lib/typescript/src/components/EnvironmentTab.d.ts.map +1 -0
- package/lib/typescript/src/components/FeatureTabBar.d.ts +13 -0
- package/lib/typescript/src/components/FeatureTabBar.d.ts.map +1 -0
- package/lib/typescript/src/components/FloatIcon.d.ts +12 -0
- package/lib/typescript/src/components/FloatIcon.d.ts.map +1 -0
- package/lib/typescript/src/components/FloatPanelView.d.ts +9 -0
- package/lib/typescript/src/components/FloatPanelView.d.ts.map +1 -0
- package/lib/typescript/src/components/NavigationLogTab.d.ts +4 -0
- package/lib/typescript/src/components/NavigationLogTab.d.ts.map +1 -0
- package/lib/typescript/src/components/NetworkLogTab.d.ts +4 -0
- package/lib/typescript/src/components/NetworkLogTab.d.ts.map +1 -0
- package/lib/typescript/src/components/ThirdPartyLibsTab.d.ts +4 -0
- package/lib/typescript/src/components/ThirdPartyLibsTab.d.ts.map +1 -0
- package/lib/typescript/src/components/TrackLogTab.d.ts +4 -0
- package/lib/typescript/src/components/TrackLogTab.d.ts.map +1 -0
- package/lib/typescript/src/components/ZustandLogTab.d.ts +4 -0
- package/lib/typescript/src/components/ZustandLogTab.d.ts.map +1 -0
- package/lib/typescript/src/components/shared/CollapsibleSection.d.ts +9 -0
- package/lib/typescript/src/components/shared/CollapsibleSection.d.ts.map +1 -0
- package/lib/typescript/src/components/shared/CopyButton.d.ts +12 -0
- package/lib/typescript/src/components/shared/CopyButton.d.ts.map +1 -0
- package/lib/typescript/src/components/shared/JsonView.d.ts +6 -0
- package/lib/typescript/src/components/shared/JsonView.d.ts.map +1 -0
- package/lib/typescript/src/components/shared/LogListScreen.d.ts +21 -0
- package/lib/typescript/src/components/shared/LogListScreen.d.ts.map +1 -0
- package/lib/typescript/src/core/DebugToolkit.d.ts +20 -0
- package/lib/typescript/src/core/DebugToolkit.d.ts.map +1 -0
- package/lib/typescript/src/core/DebugToolkitProvider.d.ts +15 -0
- package/lib/typescript/src/core/DebugToolkitProvider.d.ts.map +1 -0
- package/lib/typescript/src/features/ClipboardFeature.d.ts +7 -0
- package/lib/typescript/src/features/ClipboardFeature.d.ts.map +1 -0
- package/lib/typescript/src/features/ConsoleLogFeature.d.ts +9 -0
- package/lib/typescript/src/features/ConsoleLogFeature.d.ts.map +1 -0
- package/lib/typescript/src/features/EnvironmentFeature.d.ts +8 -0
- package/lib/typescript/src/features/EnvironmentFeature.d.ts.map +1 -0
- package/lib/typescript/src/features/NavigationLogFeature.d.ts +10 -0
- package/lib/typescript/src/features/NavigationLogFeature.d.ts.map +1 -0
- package/lib/typescript/src/features/NetworkFeature.d.ts +15 -0
- package/lib/typescript/src/features/NetworkFeature.d.ts.map +1 -0
- package/lib/typescript/src/features/ThirdPartyLibsFeature.d.ts +3 -0
- package/lib/typescript/src/features/ThirdPartyLibsFeature.d.ts.map +1 -0
- package/lib/typescript/src/features/TrackFeature.d.ts +14 -0
- package/lib/typescript/src/features/TrackFeature.d.ts.map +1 -0
- package/lib/typescript/src/features/ZustandLogFeature.d.ts +31 -0
- package/lib/typescript/src/features/ZustandLogFeature.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useNavigationLogger.d.ts +13 -0
- package/lib/typescript/src/hooks/useNavigationLogger.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useSlideDetailAnimation.d.ts +11 -0
- package/lib/typescript/src/hooks/useSlideDetailAnimation.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +26 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/initialize.d.ts +32 -0
- package/lib/typescript/src/initialize.d.ts.map +1 -0
- package/lib/typescript/src/interceptors/networkInterceptor.d.ts +18 -0
- package/lib/typescript/src/interceptors/networkInterceptor.d.ts.map +1 -0
- package/lib/typescript/src/native/NativeDebugLibs.d.ts +11 -0
- package/lib/typescript/src/native/NativeDebugLibs.d.ts.map +1 -0
- package/lib/typescript/src/types/index.d.ts +109 -0
- package/lib/typescript/src/types/index.d.ts.map +1 -0
- package/lib/typescript/src/utils/colors.d.ts +21 -0
- package/lib/typescript/src/utils/colors.d.ts.map +1 -0
- package/lib/typescript/src/utils/copyToComputer.d.ts +30 -0
- package/lib/typescript/src/utils/copyToComputer.d.ts.map +1 -0
- package/lib/typescript/src/utils/createChannelFeature.d.ts +18 -0
- package/lib/typescript/src/utils/createChannelFeature.d.ts.map +1 -0
- package/lib/typescript/src/utils/createEventChannel.d.ts +7 -0
- package/lib/typescript/src/utils/createEventChannel.d.ts.map +1 -0
- package/lib/typescript/src/utils/createObservableStore.d.ts +9 -0
- package/lib/typescript/src/utils/createObservableStore.d.ts.map +1 -0
- package/lib/typescript/src/utils/layout.d.ts +2 -0
- package/lib/typescript/src/utils/layout.d.ts.map +1 -0
- package/lib/typescript/src/utils/safeStringify.d.ts +6 -0
- package/lib/typescript/src/utils/safeStringify.d.ts.map +1 -0
- package/lib/typescript/src/utils/urlRewriterRegistry.d.ts +7 -0
- package/lib/typescript/src/utils/urlRewriterRegistry.d.ts.map +1 -0
- package/package.json +67 -24
- package/src/components/ClipboardTab.tsx +81 -0
- package/src/components/ConsoleLogTab.tsx +95 -0
- package/src/components/DebugPanel.tsx +215 -0
- package/src/components/DebugView.tsx +80 -0
- package/src/components/EnvironmentTab.tsx +276 -0
- package/src/components/FeatureTabBar.tsx +204 -0
- package/src/components/FloatIcon.tsx +171 -0
- package/src/components/FloatPanelView.tsx +202 -0
- package/src/components/NavigationLogTab.tsx +66 -0
- package/src/components/NetworkLogTab.tsx +270 -0
- package/src/components/ThirdPartyLibsTab.tsx +63 -0
- package/src/components/TrackLogTab.tsx +110 -0
- package/src/components/ZustandLogTab.tsx +203 -0
- package/src/components/shared/CollapsibleSection.tsx +78 -0
- package/src/components/shared/CopyButton.tsx +68 -0
- package/src/components/shared/JsonView.tsx +125 -0
- package/src/components/shared/LogListScreen.tsx +164 -0
- package/src/core/DebugToolkit.tsx +150 -0
- package/src/core/DebugToolkitProvider.tsx +83 -0
- package/src/features/ClipboardFeature.ts +15 -0
- package/src/features/ConsoleLogFeature.ts +116 -0
- package/src/features/EnvironmentFeature.ts +186 -0
- package/src/features/NavigationLogFeature.ts +44 -0
- package/src/features/NetworkFeature.ts +126 -0
- package/src/features/ThirdPartyLibsFeature.ts +42 -0
- package/src/features/TrackFeature.ts +34 -0
- package/src/features/ZustandLogFeature.ts +101 -0
- package/src/hooks/useNavigationLogger.ts +102 -0
- package/src/hooks/useSlideDetailAnimation.ts +45 -0
- package/src/index.ts +48 -0
- package/src/initialize.ts +122 -0
- package/src/interceptors/networkInterceptor.ts +646 -0
- package/src/native/NativeDebugLibs.ts +74 -0
- package/src/types/index.ts +127 -0
- package/src/utils/colors.ts +38 -0
- package/src/utils/copyToComputer.ts +104 -0
- package/src/utils/createChannelFeature.ts +55 -0
- package/src/utils/createEventChannel.ts +22 -0
- package/src/utils/createObservableStore.ts +42 -0
- package/src/utils/layout.ts +1 -0
- package/src/utils/safeStringify.ts +25 -0
- package/src/utils/urlRewriterRegistry.ts +10 -0
- package/.cursor/rules/react-native.mdc +0 -41
- package/index.js +0 -41
- package/ios/BuildTypeModule.h +0 -9
- package/ios/BuildTypeModule.m +0 -42
- package/ios/RNDebugLibs.h +0 -10
- package/ios/RNDebugLibs.m +0 -79
- package/lib/DebugToolKit.js +0 -126
- package/lib/EnvironmentManager.ts +0 -80
- package/lib/NativeDebugLibs.js +0 -67
- package/lib/features/ConsoleLogFeature.js +0 -70
- package/lib/features/NavigationLogFeature.js +0 -45
- package/lib/features/NetworkFeature.js +0 -389
- package/lib/features/PerformanceFeature.js +0 -390
- package/lib/features/ThirdPartyLibsFeature.js +0 -63
- package/lib/features/TrackFeature.js +0 -94
- package/lib/features/ZustandLogFeature.js +0 -44
- package/lib/hooks/useNavigationLogger.js +0 -92
- package/lib/index.js +0 -114
- package/lib/navigation/NavigationLogger.js +0 -1
- package/lib/types/TrackTypes.ts +0 -92
- package/lib/utils/DebugConst.js +0 -67
- package/lib/utils/StorageUtils.js +0 -80
- package/lib/views/ConsoleLogDetails.js +0 -314
- package/lib/views/FloatPanelView.js +0 -697
- package/lib/views/HttpLogDetails.js +0 -648
- package/lib/views/NavigationLogDetails.js +0 -302
- package/lib/views/RestartModal.js +0 -75
- package/lib/views/SubViewConsoleLogs.js +0 -209
- package/lib/views/SubViewEnvironment.js +0 -73
- package/lib/views/SubViewHTTPLogs.js +0 -235
- package/lib/views/SubViewNavigationLogs.js +0 -199
- package/lib/views/SubViewPerformance.js +0 -515
- package/lib/views/SubViewThirdPartyLibs.js +0 -239
- package/lib/views/SubViewTrackLogs.js +0 -318
- package/lib/views/SubViewZustandLogs.js +0 -279
- package/lib/views/TabView.js +0 -66
- package/lib/views/TrackLogDetails.js +0 -481
- package/lib/views/ZustandLogDetails.js +0 -355
- package/react-native-debug-toolkit.podspec +0 -25
- package/react-native.config.js +0 -18
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useCallback, useState } from 'react';
|
|
4
|
+
import { TouchableOpacity, Text, StyleSheet } from 'react-native';
|
|
5
|
+
import { Colors } from '../../utils/colors';
|
|
6
|
+
import { copyToComputer } from '../../utils/copyToComputer';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export const CopyButton = ({
|
|
9
|
+
text,
|
|
10
|
+
label,
|
|
11
|
+
compact
|
|
12
|
+
}) => {
|
|
13
|
+
const [feedback, setFeedback] = useState(null);
|
|
14
|
+
const handleCopy = useCallback(() => {
|
|
15
|
+
try {
|
|
16
|
+
const result = copyToComputer(text, {
|
|
17
|
+
label
|
|
18
|
+
});
|
|
19
|
+
setFeedback(result.method === 'clipboard' ? 'copied' : 'logged');
|
|
20
|
+
} catch {
|
|
21
|
+
setFeedback('logged');
|
|
22
|
+
}
|
|
23
|
+
setTimeout(() => setFeedback(null), 2000);
|
|
24
|
+
}, [text, label]);
|
|
25
|
+
if (!text) return null;
|
|
26
|
+
const feedbackLabel = feedback === 'copied' ? 'Copied' : feedback === 'logged' ? 'Logged' : null;
|
|
27
|
+
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
28
|
+
style: [s.copyBtn, compact && s.copyBtnCompact],
|
|
29
|
+
onPress: handleCopy,
|
|
30
|
+
activeOpacity: 0.7,
|
|
31
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
32
|
+
style: [s.copyBtnText, compact && s.copyBtnTextCompact],
|
|
33
|
+
children: feedbackLabel ?? 'Copy'
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
const s = StyleSheet.create({
|
|
38
|
+
copyBtn: {
|
|
39
|
+
backgroundColor: Colors.background,
|
|
40
|
+
paddingHorizontal: 12,
|
|
41
|
+
paddingVertical: 5,
|
|
42
|
+
borderRadius: 8,
|
|
43
|
+
alignSelf: 'flex-end'
|
|
44
|
+
},
|
|
45
|
+
copyBtnCompact: {
|
|
46
|
+
paddingHorizontal: 8,
|
|
47
|
+
paddingVertical: 3
|
|
48
|
+
},
|
|
49
|
+
copyBtnText: {
|
|
50
|
+
fontSize: 12,
|
|
51
|
+
color: Colors.textSecondary,
|
|
52
|
+
fontWeight: '500'
|
|
53
|
+
},
|
|
54
|
+
copyBtnTextCompact: {
|
|
55
|
+
fontSize: 11
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=CopyButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useState","TouchableOpacity","Text","StyleSheet","Colors","copyToComputer","jsx","_jsx","CopyButton","text","label","compact","feedback","setFeedback","handleCopy","result","method","setTimeout","feedbackLabel","style","s","copyBtn","copyBtnCompact","onPress","activeOpacity","children","copyBtnText","copyBtnTextCompact","create","backgroundColor","background","paddingHorizontal","paddingVertical","borderRadius","alignSelf","fontSize","color","textSecondary","fontWeight"],"sourceRoot":"../../../../src","sources":["components/shared/CopyButton.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AACpD,SAASC,gBAAgB,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACjE,SAASC,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,cAAc,QAAQ,4BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAW5D,OAAO,MAAMC,UAAqC,GAAGA,CAAC;EAAEC,IAAI;EAAEC,KAAK;EAAEC;AAAQ,CAAC,KAAK;EACjF,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGb,QAAQ,CAA6B,IAAI,CAAC;EAE1E,MAAMc,UAAU,GAAGf,WAAW,CAAC,MAAM;IACnC,IAAI;MACF,MAAMgB,MAAM,GAAGV,cAAc,CAACI,IAAI,EAAE;QAAEC;MAAM,CAAC,CAAC;MAC9CG,WAAW,CAACE,MAAM,CAACC,MAAM,KAAK,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAClE,CAAC,CAAC,MAAM;MACNH,WAAW,CAAC,QAAQ,CAAC;IACvB;IACAI,UAAU,CAAC,MAAMJ,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;EAC3C,CAAC,EAAE,CAACJ,IAAI,EAAEC,KAAK,CAAC,CAAC;EAEjB,IAAI,CAACD,IAAI,EAAE,OAAO,IAAI;EAEtB,MAAMS,aAAa,GACjBN,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAChCA,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAChC,IAAI;EAEN,oBACEL,IAAA,CAACN,gBAAgB;IACfkB,KAAK,EAAE,CAACC,CAAC,CAACC,OAAO,EAAEV,OAAO,IAAIS,CAAC,CAACE,cAAc,CAAE;IAChDC,OAAO,EAAET,UAAW;IACpBU,aAAa,EAAE,GAAI;IAAAC,QAAA,eAEnBlB,IAAA,CAACL,IAAI;MAACiB,KAAK,EAAE,CAACC,CAAC,CAACM,WAAW,EAAEf,OAAO,IAAIS,CAAC,CAACO,kBAAkB,CAAE;MAAAF,QAAA,EAC3DP,aAAa,IAAI;IAAM,CACpB;EAAC,CACS,CAAC;AAEvB,CAAC;AAED,MAAME,CAAC,GAAGjB,UAAU,CAACyB,MAAM,CAAC;EAC1BP,OAAO,EAAE;IACPQ,eAAe,EAAEzB,MAAM,CAAC0B,UAAU;IAClCC,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,CAAC;IAClBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EACDZ,cAAc,EAAE;IACdS,iBAAiB,EAAE,CAAC;IACpBC,eAAe,EAAE;EACnB,CAAC;EACDN,WAAW,EAAE;IACXS,QAAQ,EAAE,EAAE;IACZC,KAAK,EAAEhC,MAAM,CAACiC,aAAa;IAC3BC,UAAU,EAAE;EACd,CAAC;EACDX,kBAAkB,EAAE;IAClBQ,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View, Text, ScrollView, StyleSheet } from 'react-native';
|
|
5
|
+
import { safeStringify } from '../../utils/safeStringify';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const MAX_DEPTH = 3;
|
|
8
|
+
const MAX_CHILDREN = 50;
|
|
9
|
+
export const JsonView = /*#__PURE__*/React.memo(({
|
|
10
|
+
data,
|
|
11
|
+
maxHeight
|
|
12
|
+
}) => {
|
|
13
|
+
return /*#__PURE__*/_jsx(ScrollView, {
|
|
14
|
+
style: [s.scroll, maxHeight != null && {
|
|
15
|
+
maxHeight
|
|
16
|
+
}],
|
|
17
|
+
nestedScrollEnabled: true,
|
|
18
|
+
bounces: false,
|
|
19
|
+
showsVerticalScrollIndicator: true,
|
|
20
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
21
|
+
style: s.block,
|
|
22
|
+
children: /*#__PURE__*/_jsx(Node, {
|
|
23
|
+
value: data,
|
|
24
|
+
depth: 0,
|
|
25
|
+
isLast: true
|
|
26
|
+
})
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
const Node = ({
|
|
31
|
+
value,
|
|
32
|
+
depth,
|
|
33
|
+
isLast
|
|
34
|
+
}) => {
|
|
35
|
+
const comma = isLast ? '' : ',';
|
|
36
|
+
if (value === null) return /*#__PURE__*/_jsx(C, {
|
|
37
|
+
color: "#F38BA8",
|
|
38
|
+
children: `null${comma}`
|
|
39
|
+
});
|
|
40
|
+
if (value === undefined) return /*#__PURE__*/_jsx(C, {
|
|
41
|
+
color: "#F38BA8",
|
|
42
|
+
children: `undefined${comma}`
|
|
43
|
+
});
|
|
44
|
+
if (typeof value === 'boolean') return /*#__PURE__*/_jsx(C, {
|
|
45
|
+
color: "#89B4FA",
|
|
46
|
+
children: `${String(value)}${comma}`
|
|
47
|
+
});
|
|
48
|
+
if (typeof value === 'number') return /*#__PURE__*/_jsx(C, {
|
|
49
|
+
color: "#CBA6F7",
|
|
50
|
+
children: `${value}${comma}`
|
|
51
|
+
});
|
|
52
|
+
if (typeof value === 'string') {
|
|
53
|
+
const display = value.length > 500 ? value.slice(0, 500) + '...' : value;
|
|
54
|
+
return /*#__PURE__*/_jsx(C, {
|
|
55
|
+
color: "#A6E3A1",
|
|
56
|
+
selectable: true,
|
|
57
|
+
children: `"${display}"${comma}`
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
if (depth >= MAX_DEPTH) {
|
|
61
|
+
const collapsed = truncate(safeStringify(value), 200);
|
|
62
|
+
return /*#__PURE__*/_jsx(C, {
|
|
63
|
+
color: "#6C7086",
|
|
64
|
+
children: `${collapsed}${comma}`
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
const entries = Object.entries(value);
|
|
68
|
+
const isArray = Array.isArray(value);
|
|
69
|
+
const open = isArray ? '[' : '{';
|
|
70
|
+
const close = isArray ? ']' : '}';
|
|
71
|
+
if (entries.length === 0) return /*#__PURE__*/_jsx(C, {
|
|
72
|
+
color: "#6C7086",
|
|
73
|
+
children: `${open}${close}${comma}`
|
|
74
|
+
});
|
|
75
|
+
const limited = entries.slice(0, MAX_CHILDREN);
|
|
76
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
77
|
+
style: depth > 0 ? s.indent : undefined,
|
|
78
|
+
children: [/*#__PURE__*/_jsx(C, {
|
|
79
|
+
color: "#6C7086",
|
|
80
|
+
children: open
|
|
81
|
+
}), limited.map(([key, val], i) => /*#__PURE__*/_jsxs(View, {
|
|
82
|
+
style: s.line,
|
|
83
|
+
children: [/*#__PURE__*/_jsxs(Text, {
|
|
84
|
+
style: s.row,
|
|
85
|
+
children: [!isArray && /*#__PURE__*/_jsxs(Text, {
|
|
86
|
+
style: s.key,
|
|
87
|
+
children: ["\"", key, "\""]
|
|
88
|
+
}), !isArray && /*#__PURE__*/_jsx(Text, {
|
|
89
|
+
style: s.colon,
|
|
90
|
+
children: ': '
|
|
91
|
+
})]
|
|
92
|
+
}), /*#__PURE__*/_jsx(Node, {
|
|
93
|
+
value: val,
|
|
94
|
+
depth: depth + 1,
|
|
95
|
+
isLast: i === limited.length - 1
|
|
96
|
+
})]
|
|
97
|
+
}, key)), entries.length > MAX_CHILDREN && /*#__PURE__*/_jsx(C, {
|
|
98
|
+
color: "#6C7086",
|
|
99
|
+
children: ` ... ${entries.length - MAX_CHILDREN} more`
|
|
100
|
+
}), /*#__PURE__*/_jsx(C, {
|
|
101
|
+
color: "#6C7086",
|
|
102
|
+
children: `${close}${comma}`
|
|
103
|
+
})]
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
const C = ({
|
|
107
|
+
color,
|
|
108
|
+
children,
|
|
109
|
+
selectable
|
|
110
|
+
}) => /*#__PURE__*/_jsx(Text, {
|
|
111
|
+
style: [s.node, {
|
|
112
|
+
color
|
|
113
|
+
}],
|
|
114
|
+
selectable: selectable,
|
|
115
|
+
children: children
|
|
116
|
+
});
|
|
117
|
+
function truncate(str, len) {
|
|
118
|
+
return str.length > len ? str.slice(0, len) + '...' : str;
|
|
119
|
+
}
|
|
120
|
+
const s = StyleSheet.create({
|
|
121
|
+
scroll: {
|
|
122
|
+
backgroundColor: '#1E1E2E',
|
|
123
|
+
borderRadius: 12,
|
|
124
|
+
padding: 12
|
|
125
|
+
},
|
|
126
|
+
block: {},
|
|
127
|
+
node: {
|
|
128
|
+
fontFamily: 'Courier',
|
|
129
|
+
fontSize: 12,
|
|
130
|
+
lineHeight: 18,
|
|
131
|
+
color: '#CDD6F4'
|
|
132
|
+
},
|
|
133
|
+
indent: {
|
|
134
|
+
paddingLeft: 16
|
|
135
|
+
},
|
|
136
|
+
line: {
|
|
137
|
+
flexDirection: 'row',
|
|
138
|
+
flexWrap: 'wrap'
|
|
139
|
+
},
|
|
140
|
+
row: {},
|
|
141
|
+
key: {
|
|
142
|
+
fontFamily: 'Courier',
|
|
143
|
+
fontSize: 12,
|
|
144
|
+
color: '#89DCEB'
|
|
145
|
+
},
|
|
146
|
+
colon: {
|
|
147
|
+
fontFamily: 'Courier',
|
|
148
|
+
fontSize: 12,
|
|
149
|
+
color: '#CDD6F4'
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
//# sourceMappingURL=JsonView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","Text","ScrollView","StyleSheet","safeStringify","jsx","_jsx","jsxs","_jsxs","MAX_DEPTH","MAX_CHILDREN","JsonView","memo","data","maxHeight","style","s","scroll","nestedScrollEnabled","bounces","showsVerticalScrollIndicator","children","block","Node","value","depth","isLast","comma","C","color","undefined","String","display","length","slice","selectable","collapsed","truncate","entries","Object","isArray","Array","open","close","limited","indent","map","key","val","i","line","row","colon","node","str","len","create","backgroundColor","borderRadius","padding","fontFamily","fontSize","lineHeight","paddingLeft","flexDirection","flexWrap"],"sourceRoot":"../../../../src","sources":["components/shared/JsonView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useMemo, useState } from 'react';
|
|
4
|
+
import { View, Text, FlatList, TouchableOpacity, StyleSheet, Animated } from 'react-native';
|
|
5
|
+
import { Colors } from '../../utils/colors';
|
|
6
|
+
import { useSlideDetailAnimation } from '../../hooks/useSlideDetailAnimation';
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
/**
|
|
9
|
+
* Shared list→detail screen with slide animation.
|
|
10
|
+
* Handles: selected state, FlatList, empty state, back button, push navigation.
|
|
11
|
+
* Each tab provides renderRow, renderDetailBody, and optional renderDetailHeader.
|
|
12
|
+
*/
|
|
13
|
+
export function LogListScreen({
|
|
14
|
+
data,
|
|
15
|
+
renderRow,
|
|
16
|
+
renderListHeader,
|
|
17
|
+
renderDetailHeader,
|
|
18
|
+
renderDetailBody,
|
|
19
|
+
emptyText,
|
|
20
|
+
reversed = true
|
|
21
|
+
}) {
|
|
22
|
+
const [selected, setSelected] = useState(null);
|
|
23
|
+
const {
|
|
24
|
+
detailTranslateX,
|
|
25
|
+
listTranslateX,
|
|
26
|
+
listOpacity
|
|
27
|
+
} = useSlideDetailAnimation(selected);
|
|
28
|
+
const displayData = useMemo(() => reversed ? [...data].reverse() : data, [data, reversed]);
|
|
29
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
30
|
+
style: styles.container,
|
|
31
|
+
children: [/*#__PURE__*/_jsxs(Animated.View, {
|
|
32
|
+
style: [styles.listWrap, selected ? {
|
|
33
|
+
opacity: listOpacity,
|
|
34
|
+
transform: [{
|
|
35
|
+
translateX: listTranslateX
|
|
36
|
+
}]
|
|
37
|
+
} : null],
|
|
38
|
+
children: [renderListHeader?.(), displayData.length === 0 ? /*#__PURE__*/_jsxs(View, {
|
|
39
|
+
style: styles.emptyContainer,
|
|
40
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
41
|
+
style: styles.emptyIcon,
|
|
42
|
+
children: "~"
|
|
43
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
44
|
+
style: styles.empty,
|
|
45
|
+
children: emptyText
|
|
46
|
+
})]
|
|
47
|
+
}) : /*#__PURE__*/_jsx(FlatList, {
|
|
48
|
+
data: displayData,
|
|
49
|
+
renderItem: ({
|
|
50
|
+
item
|
|
51
|
+
}) => /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
52
|
+
style: styles.card,
|
|
53
|
+
onPress: () => setSelected(item),
|
|
54
|
+
activeOpacity: 0.6,
|
|
55
|
+
children: renderRow(item)
|
|
56
|
+
}),
|
|
57
|
+
keyExtractor: item => item.id,
|
|
58
|
+
contentContainerStyle: styles.listContent,
|
|
59
|
+
initialNumToRender: 20,
|
|
60
|
+
maxToRenderPerBatch: 10,
|
|
61
|
+
windowSize: 5,
|
|
62
|
+
removeClippedSubviews: true
|
|
63
|
+
})]
|
|
64
|
+
}), selected && /*#__PURE__*/_jsx(Animated.View, {
|
|
65
|
+
style: [styles.detailOverlay, {
|
|
66
|
+
transform: [{
|
|
67
|
+
translateX: detailTranslateX
|
|
68
|
+
}]
|
|
69
|
+
}],
|
|
70
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
71
|
+
style: styles.detailWrap,
|
|
72
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
73
|
+
style: styles.detailHeader,
|
|
74
|
+
children: [/*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
75
|
+
onPress: () => setSelected(null),
|
|
76
|
+
style: styles.backBtn,
|
|
77
|
+
activeOpacity: 0.6,
|
|
78
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
79
|
+
style: styles.backIcon,
|
|
80
|
+
children: "\u2039"
|
|
81
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
82
|
+
style: styles.backText,
|
|
83
|
+
children: "Back"
|
|
84
|
+
})]
|
|
85
|
+
}), renderDetailHeader?.(selected)]
|
|
86
|
+
}), renderDetailBody(selected)]
|
|
87
|
+
})
|
|
88
|
+
})]
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
const styles = StyleSheet.create({
|
|
92
|
+
container: {
|
|
93
|
+
flex: 1,
|
|
94
|
+
backgroundColor: Colors.background
|
|
95
|
+
},
|
|
96
|
+
listWrap: {
|
|
97
|
+
position: 'absolute',
|
|
98
|
+
top: 0,
|
|
99
|
+
left: 0,
|
|
100
|
+
right: 0,
|
|
101
|
+
bottom: 0
|
|
102
|
+
},
|
|
103
|
+
listContent: {
|
|
104
|
+
padding: 12
|
|
105
|
+
},
|
|
106
|
+
emptyContainer: {
|
|
107
|
+
flex: 1,
|
|
108
|
+
alignItems: 'center',
|
|
109
|
+
justifyContent: 'center'
|
|
110
|
+
},
|
|
111
|
+
emptyIcon: {
|
|
112
|
+
fontSize: 40,
|
|
113
|
+
color: Colors.textLight,
|
|
114
|
+
marginBottom: 4
|
|
115
|
+
},
|
|
116
|
+
empty: {
|
|
117
|
+
textAlign: 'center',
|
|
118
|
+
color: Colors.textLight,
|
|
119
|
+
fontSize: 14
|
|
120
|
+
},
|
|
121
|
+
card: {
|
|
122
|
+
backgroundColor: Colors.surface,
|
|
123
|
+
borderRadius: 12,
|
|
124
|
+
marginBottom: 8,
|
|
125
|
+
overflow: 'hidden'
|
|
126
|
+
},
|
|
127
|
+
detailOverlay: {
|
|
128
|
+
position: 'absolute',
|
|
129
|
+
top: 0,
|
|
130
|
+
left: 0,
|
|
131
|
+
right: 0,
|
|
132
|
+
bottom: 0,
|
|
133
|
+
backgroundColor: Colors.background
|
|
134
|
+
},
|
|
135
|
+
detailWrap: {
|
|
136
|
+
flex: 1,
|
|
137
|
+
backgroundColor: Colors.background
|
|
138
|
+
},
|
|
139
|
+
detailHeader: {
|
|
140
|
+
flexDirection: 'row',
|
|
141
|
+
alignItems: 'center',
|
|
142
|
+
paddingHorizontal: 8,
|
|
143
|
+
paddingVertical: 10,
|
|
144
|
+
backgroundColor: Colors.surface,
|
|
145
|
+
borderBottomWidth: StyleSheet.hairlineWidth,
|
|
146
|
+
borderBottomColor: Colors.border,
|
|
147
|
+
gap: 8
|
|
148
|
+
},
|
|
149
|
+
backBtn: {
|
|
150
|
+
flexDirection: 'row',
|
|
151
|
+
alignItems: 'center',
|
|
152
|
+
paddingHorizontal: 6,
|
|
153
|
+
paddingVertical: 4,
|
|
154
|
+
borderRadius: 8
|
|
155
|
+
},
|
|
156
|
+
backIcon: {
|
|
157
|
+
fontSize: 24,
|
|
158
|
+
fontWeight: '300',
|
|
159
|
+
color: Colors.primary,
|
|
160
|
+
marginTop: -2,
|
|
161
|
+
marginRight: 2
|
|
162
|
+
},
|
|
163
|
+
backText: {
|
|
164
|
+
fontSize: 16,
|
|
165
|
+
color: Colors.primary,
|
|
166
|
+
fontWeight: '500'
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
//# sourceMappingURL=LogListScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMemo","useState","View","Text","FlatList","TouchableOpacity","StyleSheet","Animated","Colors","useSlideDetailAnimation","jsx","_jsx","jsxs","_jsxs","LogListScreen","data","renderRow","renderListHeader","renderDetailHeader","renderDetailBody","emptyText","reversed","selected","setSelected","detailTranslateX","listTranslateX","listOpacity","displayData","reverse","style","styles","container","children","listWrap","opacity","transform","translateX","length","emptyContainer","emptyIcon","empty","renderItem","item","card","onPress","activeOpacity","keyExtractor","id","contentContainerStyle","listContent","initialNumToRender","maxToRenderPerBatch","windowSize","removeClippedSubviews","detailOverlay","detailWrap","detailHeader","backBtn","backIcon","backText","create","flex","backgroundColor","background","position","top","left","right","bottom","padding","alignItems","justifyContent","fontSize","color","textLight","marginBottom","textAlign","surface","borderRadius","overflow","flexDirection","paddingHorizontal","paddingVertical","borderBottomWidth","hairlineWidth","borderBottomColor","border","gap","fontWeight","primary","marginTop","marginRight"],"sourceRoot":"../../../../src","sources":["components/shared/LogListScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const listeners = new Set();
|
|
4
|
+
let _features = [];
|
|
5
|
+
let _panelVisible = false;
|
|
6
|
+
let _enabled = true;
|
|
7
|
+
function notify() {
|
|
8
|
+
listeners.forEach(l => l());
|
|
9
|
+
}
|
|
10
|
+
function setupFeature(feature) {
|
|
11
|
+
feature.setup?.();
|
|
12
|
+
}
|
|
13
|
+
function cleanupFeature(feature) {
|
|
14
|
+
feature.cleanup?.();
|
|
15
|
+
}
|
|
16
|
+
export const DebugToolkit = {
|
|
17
|
+
subscribe(listener) {
|
|
18
|
+
listeners.add(listener);
|
|
19
|
+
return () => {
|
|
20
|
+
listeners.delete(listener);
|
|
21
|
+
};
|
|
22
|
+
},
|
|
23
|
+
get features() {
|
|
24
|
+
return [..._features];
|
|
25
|
+
},
|
|
26
|
+
get enabled() {
|
|
27
|
+
return _enabled;
|
|
28
|
+
},
|
|
29
|
+
get panelVisible() {
|
|
30
|
+
return _panelVisible;
|
|
31
|
+
},
|
|
32
|
+
setEnabled(enabled) {
|
|
33
|
+
if (_enabled === enabled) return;
|
|
34
|
+
_enabled = enabled;
|
|
35
|
+
if (!enabled) {
|
|
36
|
+
_panelVisible = false;
|
|
37
|
+
_features.forEach(cleanupFeature);
|
|
38
|
+
_features = [];
|
|
39
|
+
}
|
|
40
|
+
notify();
|
|
41
|
+
},
|
|
42
|
+
replaceFeatures(features) {
|
|
43
|
+
if (!_enabled) return;
|
|
44
|
+
const next = features.filter((f, i, arr) => f && typeof f.name === 'string' && arr.findIndex(item => item.name === f.name) === i);
|
|
45
|
+
const prevMap = new Map(_features.map(f => [f.name, f]));
|
|
46
|
+
const nextMap = new Map(next.map(f => [f.name, f]));
|
|
47
|
+
_features.forEach(f => {
|
|
48
|
+
if (!nextMap.get(f.name) || nextMap.get(f.name) !== f) cleanupFeature(f);
|
|
49
|
+
});
|
|
50
|
+
next.forEach(f => {
|
|
51
|
+
if (!prevMap.get(f.name) || prevMap.get(f.name) !== f) setupFeature(f);
|
|
52
|
+
});
|
|
53
|
+
_features = next;
|
|
54
|
+
notify();
|
|
55
|
+
},
|
|
56
|
+
addFeature(feature) {
|
|
57
|
+
if (!_enabled || !feature || typeof feature.name !== 'string') {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const existingIndex = _features.findIndex(f => f.name === feature.name);
|
|
61
|
+
if (existingIndex >= 0) {
|
|
62
|
+
const existing = _features[existingIndex];
|
|
63
|
+
if (existing === feature) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
cleanupFeature(existing);
|
|
67
|
+
setupFeature(feature);
|
|
68
|
+
_features = [..._features.slice(0, existingIndex), feature, ..._features.slice(existingIndex + 1)];
|
|
69
|
+
notify();
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
setupFeature(feature);
|
|
73
|
+
_features = [..._features, feature];
|
|
74
|
+
notify();
|
|
75
|
+
},
|
|
76
|
+
removeFeature(name) {
|
|
77
|
+
if (!_enabled) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const feature = _features.find(f => f.name === name);
|
|
81
|
+
if (!feature) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
cleanupFeature(feature);
|
|
85
|
+
_features = _features.filter(f => f.name !== name);
|
|
86
|
+
if (_features.length === 0) {
|
|
87
|
+
_panelVisible = false;
|
|
88
|
+
}
|
|
89
|
+
notify();
|
|
90
|
+
},
|
|
91
|
+
reset() {
|
|
92
|
+
_panelVisible = false;
|
|
93
|
+
_features.forEach(cleanupFeature);
|
|
94
|
+
_features = [];
|
|
95
|
+
notify();
|
|
96
|
+
},
|
|
97
|
+
hasFeatures() {
|
|
98
|
+
return _features.length > 0;
|
|
99
|
+
},
|
|
100
|
+
showPanel() {
|
|
101
|
+
if (!_enabled) return;
|
|
102
|
+
_panelVisible = true;
|
|
103
|
+
notify();
|
|
104
|
+
},
|
|
105
|
+
hidePanel() {
|
|
106
|
+
_panelVisible = false;
|
|
107
|
+
notify();
|
|
108
|
+
},
|
|
109
|
+
clearAll() {
|
|
110
|
+
_features.forEach(f => f.clear?.());
|
|
111
|
+
notify();
|
|
112
|
+
},
|
|
113
|
+
destroy() {
|
|
114
|
+
this.reset();
|
|
115
|
+
listeners.clear();
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=DebugToolkit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["listeners","Set","_features","_panelVisible","_enabled","notify","forEach","l","setupFeature","feature","setup","cleanupFeature","cleanup","DebugToolkit","subscribe","listener","add","delete","features","enabled","panelVisible","setEnabled","replaceFeatures","next","filter","f","i","arr","name","findIndex","item","prevMap","Map","map","nextMap","get","addFeature","existingIndex","existing","slice","removeFeature","find","length","reset","hasFeatures","showPanel","hidePanel","clearAll","clear","destroy"],"sourceRoot":"../../../src","sources":["core/DebugToolkit.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';
|
|
4
|
+
import { DebugToolkit } from './DebugToolkit';
|
|
5
|
+
import { FloatPanelView } from '../components/FloatPanelView';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const ToolkitContext = /*#__PURE__*/createContext(null);
|
|
8
|
+
export function DebugToolkitProvider({
|
|
9
|
+
children
|
|
10
|
+
}) {
|
|
11
|
+
const [state, setState] = useState(() => ({
|
|
12
|
+
panelVisible: DebugToolkit.panelVisible,
|
|
13
|
+
features: DebugToolkit.features
|
|
14
|
+
}));
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
// Sync current state — initializeDebugToolkit() may have been called
|
|
17
|
+
// in a child useEffect that runs before this parent effect subscribes.
|
|
18
|
+
setState({
|
|
19
|
+
panelVisible: DebugToolkit.panelVisible,
|
|
20
|
+
features: DebugToolkit.features
|
|
21
|
+
});
|
|
22
|
+
const unsubscribe = DebugToolkit.subscribe(() => {
|
|
23
|
+
setState({
|
|
24
|
+
panelVisible: DebugToolkit.panelVisible,
|
|
25
|
+
features: DebugToolkit.features
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
return unsubscribe;
|
|
29
|
+
}, []);
|
|
30
|
+
const showPanel = useCallback(() => {
|
|
31
|
+
DebugToolkit.showPanel();
|
|
32
|
+
}, []);
|
|
33
|
+
const hidePanel = useCallback(() => {
|
|
34
|
+
DebugToolkit.hidePanel();
|
|
35
|
+
}, []);
|
|
36
|
+
const clearAll = useCallback(() => {
|
|
37
|
+
DebugToolkit.clearAll();
|
|
38
|
+
}, []);
|
|
39
|
+
const contextValue = useMemo(() => ({
|
|
40
|
+
features: state.features,
|
|
41
|
+
showPanel,
|
|
42
|
+
hidePanel,
|
|
43
|
+
clearAll
|
|
44
|
+
}), [state.features, showPanel, hidePanel, clearAll]);
|
|
45
|
+
return /*#__PURE__*/_jsxs(ToolkitContext.Provider, {
|
|
46
|
+
value: contextValue,
|
|
47
|
+
children: [children, state.panelVisible && /*#__PURE__*/_jsx(FloatPanelView, {
|
|
48
|
+
features: state.features,
|
|
49
|
+
onClearAll: () => DebugToolkit.clearAll()
|
|
50
|
+
})]
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
export function useDebugToolkit() {
|
|
54
|
+
const context = useContext(ToolkitContext);
|
|
55
|
+
if (!context) {
|
|
56
|
+
throw new Error('useDebugToolkit must be used within a <DebugToolkitProvider>. ' + 'Wrap your app with <DebugToolkitProvider>.');
|
|
57
|
+
}
|
|
58
|
+
return context;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=DebugToolkitProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useState","DebugToolkit","FloatPanelView","jsx","_jsx","jsxs","_jsxs","ToolkitContext","DebugToolkitProvider","children","state","setState","panelVisible","features","unsubscribe","subscribe","showPanel","hidePanel","clearAll","contextValue","Provider","value","onClearAll","useDebugToolkit","context","Error"],"sourceRoot":"../../../src","sources":["core/DebugToolkitProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAwB,OAAO;AACnH,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,cAAc,QAAQ,8BAA8B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAU9D,MAAMC,cAAc,gBAAGZ,aAAa,CAA6B,IAAI,CAAC;AAWtE,OAAO,SAASa,oBAAoBA,CAAC;EAAEC;AAAoC,CAAC,EAAE;EAC5E,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGX,QAAQ,CAAgB,OAAO;IACvDY,YAAY,EAAEX,YAAY,CAACW,YAAY;IACvCC,QAAQ,EAAEZ,YAAY,CAACY;EACzB,CAAC,CAAC,CAAC;EAEHf,SAAS,CAAC,MAAM;IACd;IACA;IACAa,QAAQ,CAAC;MACPC,YAAY,EAAEX,YAAY,CAACW,YAAY;MACvCC,QAAQ,EAAEZ,YAAY,CAACY;IACzB,CAAC,CAAC;IAEF,MAAMC,WAAW,GAAGb,YAAY,CAACc,SAAS,CAAC,MAAM;MAC/CJ,QAAQ,CAAC;QACPC,YAAY,EAAEX,YAAY,CAACW,YAAY;QACvCC,QAAQ,EAAEZ,YAAY,CAACY;MACzB,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,OAAOC,WAAW;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,SAAS,GAAGpB,WAAW,CAAC,MAAM;IAAEK,YAAY,CAACe,SAAS,CAAC,CAAC;EAAE,CAAC,EAAE,EAAE,CAAC;EACtE,MAAMC,SAAS,GAAGrB,WAAW,CAAC,MAAM;IAAEK,YAAY,CAACgB,SAAS,CAAC,CAAC;EAAE,CAAC,EAAE,EAAE,CAAC;EACtE,MAAMC,QAAQ,GAAGtB,WAAW,CAAC,MAAM;IAAEK,YAAY,CAACiB,QAAQ,CAAC,CAAC;EAAE,CAAC,EAAE,EAAE,CAAC;EAEpE,MAAMC,YAAY,GAAGpB,OAAO,CAC1B,OAAO;IACLc,QAAQ,EAAEH,KAAK,CAACG,QAAQ;IACxBG,SAAS;IACTC,SAAS;IACTC;EACF,CAAC,CAAC,EACF,CAACR,KAAK,CAACG,QAAQ,EAAEG,SAAS,EAAEC,SAAS,EAAEC,QAAQ,CACjD,CAAC;EAED,oBACEZ,KAAA,CAACC,cAAc,CAACa,QAAQ;IAACC,KAAK,EAAEF,YAAa;IAAAV,QAAA,GAC1CA,QAAQ,EACRC,KAAK,CAACE,YAAY,iBACjBR,IAAA,CAACF,cAAc;MACbW,QAAQ,EAAEH,KAAK,CAACG,QAAS;MACzBS,UAAU,EAAEA,CAAA,KAAMrB,YAAY,CAACiB,QAAQ,CAAC;IAAE,CAC3C,CACF;EAAA,CACsB,CAAC;AAE9B;AAEA,OAAO,SAASK,eAAeA,CAAA,EAAwB;EACrD,MAAMC,OAAO,GAAG3B,UAAU,CAACU,cAAc,CAAC;EAC1C,IAAI,CAACiB,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CACb,gEAAgE,GAC9D,4CACJ,CAAC;EACH;EACA,OAAOD,OAAO;AAChB","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { ClipboardTab } from '../components/ClipboardTab';
|
|
4
|
+
/**
|
|
5
|
+
* Clipboard feature — all logic lives in ClipboardTab.
|
|
6
|
+
* Data flow is user-driven (TextInput), not event-based.
|
|
7
|
+
*/
|
|
8
|
+
export const createClipboardFeature = () => ({
|
|
9
|
+
name: 'clipboard',
|
|
10
|
+
label: 'Clipboard',
|
|
11
|
+
renderContent: ClipboardTab,
|
|
12
|
+
setup() {},
|
|
13
|
+
getData: () => [],
|
|
14
|
+
cleanup() {}
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=ClipboardFeature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ClipboardTab","createClipboardFeature","name","label","renderContent","setup","getData","cleanup"],"sourceRoot":"../../../src","sources":["features/ClipboardFeature.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAGzD;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAGA,CAAA,MAA2B;EAC/DC,IAAI,EAAE,WAAW;EACjBC,KAAK,EAAE,WAAW;EAClBC,aAAa,EAAEJ,YAAY;EAC3BK,KAAKA,CAAA,EAAG,CAAC,CAAC;EACVC,OAAO,EAAEA,CAAA,KAAM,EAAE;EACjBC,OAAOA,CAAA,EAAG,CAAC;AACb,CAAC,CAAC","ignoreList":[]}
|