react-native-inapp-inspector 1.1.13 → 1.1.15
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 +9 -34
- package/dist/commonjs/assets/svgAssets.d.ts +3 -0
- package/dist/commonjs/assets/svgAssets.js +17 -0
- package/dist/commonjs/components/AnalyticsEventCard.d.ts +1 -14
- package/dist/commonjs/components/AnalyticsEventCard.js +120 -50
- package/dist/commonjs/components/AnalyticsGraph.d.ts +2 -6
- package/dist/commonjs/components/AnalyticsGraph.js +8 -8
- package/dist/commonjs/components/AnalyticsTabView.d.ts +15 -0
- package/dist/commonjs/components/AnalyticsTabView.js +157 -0
- package/dist/commonjs/components/AnimatedEntrance.d.ts +1 -1
- package/dist/commonjs/components/AnimatedEntrance.js +2 -2
- package/dist/commonjs/components/ApiDetailView.d.ts +22 -0
- package/dist/commonjs/components/ApiDetailView.js +304 -0
- package/dist/commonjs/components/ApisTabView.d.ts +33 -0
- package/dist/commonjs/components/ApisTabView.js +235 -0
- package/dist/commonjs/components/CodeSnippet.d.ts +1 -5
- package/dist/commonjs/components/CodeSnippet.js +34 -34
- package/dist/commonjs/components/ConsoleLogCard.d.ts +1 -8
- package/dist/commonjs/components/ConsoleLogCard.js +262 -442
- package/dist/commonjs/components/ConsoleLogDetailView.d.ts +9 -0
- package/dist/commonjs/components/ConsoleLogDetailView.js +278 -0
- package/dist/commonjs/components/ConsoleLogsTabView.d.ts +24 -0
- package/dist/commonjs/components/ConsoleLogsTabView.js +354 -0
- package/dist/commonjs/components/DiffViewer.js +4 -2
- package/dist/commonjs/components/DomainHeader.js +66 -41
- package/dist/commonjs/components/EmptyState.d.ts +2 -2
- package/dist/commonjs/components/EmptyState.js +2 -2
- package/dist/commonjs/components/EndOfListFooter.d.ts +8 -0
- package/dist/commonjs/components/EndOfListFooter.js +90 -0
- package/dist/commonjs/components/ErrorBoundary.d.ts +5 -14
- package/dist/commonjs/components/ErrorBoundary.js +28 -28
- package/dist/commonjs/components/FloatingBubble.d.ts +14 -0
- package/dist/commonjs/components/FloatingBubble.js +75 -0
- package/dist/commonjs/components/HeadersSection.js +5 -3
- package/dist/commonjs/components/HighlightText.d.ts +1 -1
- package/dist/commonjs/components/HighlightText.js +5 -7
- package/dist/commonjs/components/Inspector/AnalyticsTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/AnalyticsTab.js +232 -0
- package/dist/commonjs/components/Inspector/ConsoleTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/ConsoleTab.js +410 -0
- package/dist/commonjs/components/Inspector/FabLauncher.d.ts +3 -0
- package/dist/commonjs/components/Inspector/FabLauncher.js +54 -0
- package/dist/commonjs/components/Inspector/InsightsDashboard.d.ts +3 -0
- package/dist/commonjs/components/Inspector/InsightsDashboard.js +619 -0
- package/dist/commonjs/components/Inspector/InspectorContext.d.ts +5 -0
- package/dist/commonjs/components/Inspector/InspectorContext.js +18 -0
- package/dist/commonjs/components/Inspector/InspectorHeader.d.ts +3 -0
- package/dist/commonjs/components/Inspector/InspectorHeader.js +452 -0
- package/dist/commonjs/components/Inspector/LogDetail.d.ts +3 -0
- package/dist/commonjs/components/Inspector/LogDetail.js +963 -0
- package/dist/commonjs/components/Inspector/MainScreen.d.ts +3 -0
- package/dist/commonjs/components/Inspector/MainScreen.js +68 -0
- package/dist/commonjs/components/Inspector/NavigationTracker.d.ts +3 -0
- package/dist/commonjs/components/Inspector/NavigationTracker.js +12 -0
- package/dist/commonjs/components/Inspector/NetworkDetail.d.ts +3 -0
- package/dist/commonjs/components/Inspector/NetworkDetail.js +405 -0
- package/dist/commonjs/components/Inspector/NetworkTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/NetworkTab.js +281 -0
- package/dist/commonjs/components/Inspector/ReduxTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/ReduxTab.js +75 -0
- package/dist/commonjs/components/Inspector/SettingsPanel.d.ts +3 -0
- package/dist/commonjs/components/Inspector/SettingsPanel.js +1476 -0
- package/dist/commonjs/components/Inspector/TabBar.d.ts +3 -0
- package/dist/commonjs/components/Inspector/TabBar.js +95 -0
- package/dist/commonjs/components/Inspector/WebViewTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/WebViewTab.js +757 -0
- package/dist/commonjs/components/InspectorHeader.d.ts +19 -0
- package/dist/commonjs/components/InspectorHeader.js +329 -0
- package/dist/commonjs/components/InspectorTabBar.d.ts +16 -0
- package/dist/commonjs/components/InspectorTabBar.js +90 -0
- package/dist/commonjs/components/JsonViewer.d.ts +4 -1
- package/dist/commonjs/components/JsonViewer.js +110 -171
- package/dist/commonjs/components/LogCard.js +109 -86
- package/dist/commonjs/components/MetaAccordion.d.ts +1 -10
- package/dist/commonjs/components/MetaAccordion.js +23 -21
- package/dist/commonjs/components/NavigationTracker.d.ts +7 -0
- package/dist/commonjs/components/NavigationTracker.js +76 -0
- package/dist/commonjs/components/NetworkIcons.d.ts +6 -0
- package/dist/commonjs/components/NetworkIcons.js +54 -8
- package/dist/commonjs/components/ReduxTabView.d.ts +9 -0
- package/dist/commonjs/components/ReduxTabView.js +56 -0
- package/dist/commonjs/components/ReduxTreeView.js +241 -200
- package/dist/commonjs/components/SegmentedTabs.d.ts +15 -0
- package/dist/commonjs/components/SegmentedTabs.js +52 -0
- package/dist/commonjs/components/SettingsView.d.ts +13 -0
- package/dist/commonjs/components/SettingsView.js +328 -0
- package/dist/commonjs/components/TouchableScale.d.ts +2 -2
- package/dist/commonjs/components/TouchableScale.js +2 -2
- package/dist/commonjs/components/TreeNode.js +2 -2
- package/dist/commonjs/constants/index.js +1 -12
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/analyticsLogger.d.ts +8 -0
- package/dist/commonjs/customHooks/analyticsLogger.js +42 -1
- package/dist/commonjs/customHooks/consoleLogger.js +137 -13
- package/dist/commonjs/customHooks/networkLogger.d.ts +0 -1
- package/dist/commonjs/customHooks/networkLogger.js +0 -1
- package/dist/commonjs/customHooks/reduxLogger.d.ts +2 -9
- package/dist/commonjs/enums/index.d.ts +39 -0
- package/dist/commonjs/enums/index.js +50 -0
- package/dist/commonjs/helpers/index.d.ts +27 -1
- package/dist/commonjs/helpers/index.js +187 -12
- package/dist/commonjs/helpers/settingsStore.d.ts +2 -24
- package/dist/commonjs/i18n/en.json +144 -0
- package/dist/commonjs/i18n/index.d.ts +2 -0
- package/dist/commonjs/i18n/index.js +27 -0
- package/dist/commonjs/i18n/locales/en.json +314 -0
- package/dist/commonjs/index.d.ts +2 -3
- package/dist/commonjs/index.js +207 -4927
- package/dist/commonjs/styles/AppColors.d.ts +148 -0
- package/dist/commonjs/styles/AppColors.js +176 -0
- package/dist/commonjs/styles/common.d.ts +3 -0
- package/dist/commonjs/styles/common.js +201 -0
- package/dist/commonjs/styles/index.d.ts +219 -435
- package/dist/commonjs/styles/index.js +312 -488
- package/dist/commonjs/types/enums.d.ts +9 -0
- package/dist/commonjs/types/enums.js +4 -0
- package/dist/commonjs/types/index.d.ts +4 -111
- package/dist/commonjs/types/index.js +16 -0
- package/dist/commonjs/types/interfaces.d.ts +337 -0
- package/dist/commonjs/types/interfaces.js +2 -0
- package/dist/esm/assets/svgAssets.d.ts +3 -0
- package/dist/esm/assets/svgAssets.js +14 -0
- package/dist/esm/components/AnalyticsEventCard.d.ts +1 -14
- package/dist/esm/components/AnalyticsEventCard.js +118 -48
- package/dist/esm/components/AnalyticsGraph.d.ts +2 -6
- package/dist/esm/components/AnalyticsGraph.js +8 -8
- package/dist/esm/components/AnalyticsTabView.d.ts +15 -0
- package/dist/esm/components/AnalyticsTabView.js +151 -0
- package/dist/esm/components/AnimatedEntrance.d.ts +1 -1
- package/dist/esm/components/AnimatedEntrance.js +2 -2
- package/dist/esm/components/ApiDetailView.d.ts +22 -0
- package/dist/esm/components/ApiDetailView.js +264 -0
- package/dist/esm/components/ApisTabView.d.ts +33 -0
- package/dist/esm/components/ApisTabView.js +196 -0
- package/dist/esm/components/CodeSnippet.d.ts +1 -5
- package/dist/esm/components/CodeSnippet.js +34 -34
- package/dist/esm/components/ConsoleLogCard.d.ts +1 -8
- package/dist/esm/components/ConsoleLogCard.js +262 -409
- package/dist/esm/components/ConsoleLogDetailView.d.ts +9 -0
- package/dist/esm/components/ConsoleLogDetailView.js +271 -0
- package/dist/esm/components/ConsoleLogsTabView.d.ts +24 -0
- package/dist/esm/components/ConsoleLogsTabView.js +348 -0
- package/dist/esm/components/DiffViewer.js +4 -2
- package/dist/esm/components/DomainHeader.js +66 -41
- package/dist/esm/components/EmptyState.d.ts +2 -2
- package/dist/esm/components/EmptyState.js +2 -2
- package/dist/esm/components/EndOfListFooter.d.ts +8 -0
- package/dist/esm/components/EndOfListFooter.js +83 -0
- package/dist/esm/components/ErrorBoundary.d.ts +5 -14
- package/dist/esm/components/ErrorBoundary.js +29 -29
- package/dist/esm/components/FloatingBubble.d.ts +14 -0
- package/dist/esm/components/FloatingBubble.js +68 -0
- package/dist/esm/components/HeadersSection.js +5 -3
- package/dist/esm/components/HighlightText.d.ts +1 -1
- package/dist/esm/components/HighlightText.js +5 -7
- package/dist/esm/components/Inspector/AnalyticsTab.d.ts +3 -0
- package/dist/esm/components/Inspector/AnalyticsTab.js +194 -0
- package/dist/esm/components/Inspector/ConsoleTab.d.ts +3 -0
- package/dist/esm/components/Inspector/ConsoleTab.js +372 -0
- package/dist/esm/components/Inspector/FabLauncher.d.ts +3 -0
- package/dist/esm/components/Inspector/FabLauncher.js +49 -0
- package/dist/esm/components/Inspector/InsightsDashboard.d.ts +3 -0
- package/dist/esm/components/Inspector/InsightsDashboard.js +614 -0
- package/dist/esm/components/Inspector/InspectorContext.d.ts +5 -0
- package/dist/esm/components/Inspector/InspectorContext.js +13 -0
- package/dist/esm/components/Inspector/InspectorHeader.d.ts +3 -0
- package/dist/esm/components/Inspector/InspectorHeader.js +447 -0
- package/dist/esm/components/Inspector/LogDetail.d.ts +3 -0
- package/dist/esm/components/Inspector/LogDetail.js +925 -0
- package/dist/esm/components/Inspector/MainScreen.d.ts +3 -0
- package/dist/esm/components/Inspector/MainScreen.js +63 -0
- package/dist/esm/components/Inspector/NavigationTracker.d.ts +3 -0
- package/dist/esm/components/Inspector/NavigationTracker.js +10 -0
- package/dist/esm/components/Inspector/NetworkDetail.d.ts +3 -0
- package/dist/esm/components/Inspector/NetworkDetail.js +367 -0
- package/dist/esm/components/Inspector/NetworkTab.d.ts +3 -0
- package/dist/esm/components/Inspector/NetworkTab.js +243 -0
- package/dist/esm/components/Inspector/ReduxTab.d.ts +3 -0
- package/dist/esm/components/Inspector/ReduxTab.js +70 -0
- package/dist/esm/components/Inspector/SettingsPanel.d.ts +3 -0
- package/dist/esm/components/Inspector/SettingsPanel.js +1438 -0
- package/dist/esm/components/Inspector/TabBar.d.ts +3 -0
- package/dist/esm/components/Inspector/TabBar.js +90 -0
- package/dist/esm/components/Inspector/WebViewTab.d.ts +3 -0
- package/dist/esm/components/Inspector/WebViewTab.js +752 -0
- package/dist/esm/components/InspectorHeader.d.ts +19 -0
- package/dist/esm/components/InspectorHeader.js +323 -0
- package/dist/esm/components/InspectorTabBar.d.ts +16 -0
- package/dist/esm/components/InspectorTabBar.js +84 -0
- package/dist/esm/components/JsonViewer.d.ts +4 -1
- package/dist/esm/components/JsonViewer.js +111 -172
- package/dist/esm/components/LogCard.js +111 -88
- package/dist/esm/components/MetaAccordion.d.ts +1 -10
- package/dist/esm/components/MetaAccordion.js +23 -21
- package/dist/esm/components/NavigationTracker.d.ts +7 -0
- package/dist/esm/components/NavigationTracker.js +39 -0
- package/dist/esm/components/NetworkIcons.d.ts +6 -0
- package/dist/esm/components/NetworkIcons.js +46 -6
- package/dist/esm/components/ReduxTabView.d.ts +9 -0
- package/dist/esm/components/ReduxTabView.js +50 -0
- package/dist/esm/components/ReduxTreeView.js +243 -202
- package/dist/esm/components/SegmentedTabs.d.ts +15 -0
- package/dist/esm/components/SegmentedTabs.js +47 -0
- package/dist/esm/components/SettingsView.d.ts +13 -0
- package/dist/esm/components/SettingsView.js +321 -0
- package/dist/esm/components/TouchableScale.d.ts +2 -2
- package/dist/esm/components/TouchableScale.js +2 -2
- package/dist/esm/components/TreeNode.js +2 -2
- package/dist/esm/constants/index.js +1 -12
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/analyticsLogger.d.ts +8 -0
- package/dist/esm/customHooks/analyticsLogger.js +37 -0
- package/dist/esm/customHooks/consoleLogger.js +137 -13
- package/dist/esm/customHooks/networkLogger.d.ts +0 -1
- package/dist/esm/customHooks/networkLogger.js +0 -1
- package/dist/esm/customHooks/reduxLogger.d.ts +2 -9
- package/dist/esm/enums/index.d.ts +39 -0
- package/dist/esm/enums/index.js +47 -0
- package/dist/esm/helpers/index.d.ts +27 -1
- package/dist/esm/helpers/index.js +180 -11
- package/dist/esm/helpers/settingsStore.d.ts +2 -24
- package/dist/esm/i18n/en.json +144 -0
- package/dist/esm/i18n/index.d.ts +2 -0
- package/dist/esm/i18n/index.js +22 -0
- package/dist/esm/i18n/locales/en.json +314 -0
- package/dist/esm/index.d.ts +2 -3
- package/dist/esm/index.js +207 -4923
- package/dist/esm/styles/AppColors.d.ts +148 -0
- package/dist/esm/styles/AppColors.js +176 -0
- package/dist/esm/styles/common.d.ts +3 -0
- package/dist/esm/styles/common.js +197 -0
- package/dist/esm/styles/index.d.ts +219 -435
- package/dist/esm/styles/index.js +312 -488
- package/dist/esm/types/enums.d.ts +9 -0
- package/dist/esm/types/enums.js +3 -0
- package/dist/esm/types/index.d.ts +4 -111
- package/dist/esm/types/index.js +2 -1
- package/dist/esm/types/interfaces.d.ts +337 -0
- package/dist/esm/types/interfaces.js +1 -0
- package/example/App.tsx +88 -1
- package/example/android/app/build.gradle +29 -1
- package/example/android/app/src/main/java/com/example/MainApplication.kt +25 -0
- package/example/android/build.gradle +31 -4
- package/example/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/example/android/gradle.properties +1 -0
- package/example/android/settings.gradle +20 -1
- package/example/package-lock.json +1 -1
- package/package.json +3 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
|
+
import { useTranslation } from 'react-i18next';
|
|
2
3
|
import { View, Pressable, Text, Animated } from 'react-native';
|
|
3
4
|
// Constants
|
|
4
5
|
import { DURATION_FAST_MS, DURATION_SLOW_MS } from '../constants';
|
|
@@ -15,8 +16,9 @@ import { AppColors } from '../styles/AppColors';
|
|
|
15
16
|
import { AppFonts } from '../styles/AppFonts';
|
|
16
17
|
import styles from '../styles';
|
|
17
18
|
const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, method, contentType, url, }) => {
|
|
19
|
+
const { t } = useTranslation();
|
|
18
20
|
const [urlExpanded, setUrlExpanded] = useState(false);
|
|
19
|
-
const { toggleOpen, chevronStyle, bodyStyle } = useAccordion(true,
|
|
21
|
+
const { toggleOpen, chevronStyle, bodyStyle } = useAccordion(true, 800, 390);
|
|
20
22
|
const isFailed = status === 0 || status == null;
|
|
21
23
|
const renderFormattedUrl = (rawUrl) => {
|
|
22
24
|
if (!rawUrl)
|
|
@@ -44,10 +46,10 @@ const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, metho
|
|
|
44
46
|
search = pathAndSearch.substring(queryIndex);
|
|
45
47
|
}
|
|
46
48
|
return (<Text style={{ lineHeight: 16 }}>
|
|
47
|
-
{protocol ? (<Text style={{ color:
|
|
49
|
+
{protocol ? (<Text style={{ color: AppColors.slate400, fontFamily: AppFonts.interRegular }}>{protocol}</Text>) : null}
|
|
48
50
|
<Text style={{ color: AppColors.purple, fontFamily: AppFonts.interBold }}>{host}</Text>
|
|
49
|
-
<Text style={{ color:
|
|
50
|
-
{search ? (<Text style={{ color:
|
|
51
|
+
<Text style={{ color: AppColors.slate700, fontFamily: AppFonts.interMedium }}>{pathname}</Text>
|
|
52
|
+
{search ? (<Text style={{ color: AppColors.teal600, fontFamily: AppFonts.interRegular }}>{search}</Text>) : null}
|
|
51
53
|
</Text>);
|
|
52
54
|
}
|
|
53
55
|
catch {
|
|
@@ -69,7 +71,7 @@ const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, metho
|
|
|
69
71
|
<View style={styles.metaRow}>
|
|
70
72
|
<View style={styles.metaLabelRow}>
|
|
71
73
|
<CalendarIcon color={AppColors.grayTextWeak} size={14}/>
|
|
72
|
-
<Text style={styles.metaLabel}>
|
|
74
|
+
<Text style={styles.metaLabel}>{t('network.triggeredAt')}</Text>
|
|
73
75
|
</View>
|
|
74
76
|
<Text style={[
|
|
75
77
|
styles.metaValue,
|
|
@@ -83,13 +85,13 @@ const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, metho
|
|
|
83
85
|
<View style={styles.metaRow}>
|
|
84
86
|
<View style={styles.metaLabelRow}>
|
|
85
87
|
<TerminalIcon color={AppColors.grayTextWeak} size={14}/>
|
|
86
|
-
<Text style={styles.metaLabel}>
|
|
88
|
+
<Text style={styles.metaLabel}>{t('network.methodHeader')}</Text>
|
|
87
89
|
</View>
|
|
88
90
|
<View style={[
|
|
89
91
|
styles.statusChip,
|
|
90
92
|
{
|
|
91
|
-
borderColor:
|
|
92
|
-
backgroundColor:
|
|
93
|
+
borderColor: `${AppColors.brandPurple}40`,
|
|
94
|
+
backgroundColor: `${AppColors.brandPurple}14`,
|
|
93
95
|
},
|
|
94
96
|
]}>
|
|
95
97
|
<Text style={[
|
|
@@ -105,7 +107,7 @@ const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, metho
|
|
|
105
107
|
<View style={styles.metaRow}>
|
|
106
108
|
<View style={styles.metaLabelRow}>
|
|
107
109
|
<StatusIcon color={AppColors.grayTextWeak}/>
|
|
108
|
-
<Text style={styles.metaLabel}>
|
|
110
|
+
<Text style={styles.metaLabel}>{t('network.statusHeader')}</Text>
|
|
109
111
|
</View>
|
|
110
112
|
<View style={[
|
|
111
113
|
styles.statusChip,
|
|
@@ -122,7 +124,7 @@ const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, metho
|
|
|
122
124
|
styles.statusText,
|
|
123
125
|
{ color: isFailed ? AppColors.errorColor : statusColor },
|
|
124
126
|
]}>
|
|
125
|
-
{isFailed ? '
|
|
127
|
+
{isFailed ? t('network.failedNetworkError') : String(status)}
|
|
126
128
|
</Text>
|
|
127
129
|
</View>
|
|
128
130
|
</View>
|
|
@@ -131,7 +133,7 @@ const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, metho
|
|
|
131
133
|
<View style={styles.metaRow}>
|
|
132
134
|
<View style={styles.metaLabelRow}>
|
|
133
135
|
<GlobeIcon color={AppColors.grayTextWeak} size={14}/>
|
|
134
|
-
<Text style={styles.metaLabel}>
|
|
136
|
+
<Text style={styles.metaLabel}>{t('network.contentType')}</Text>
|
|
135
137
|
</View>
|
|
136
138
|
<Text style={styles.metaValue}>
|
|
137
139
|
{contentType || 'application/json'}
|
|
@@ -142,7 +144,7 @@ const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, metho
|
|
|
142
144
|
<View style={styles.metaRow}>
|
|
143
145
|
<View style={styles.metaLabelRow}>
|
|
144
146
|
<ClockIcon color={AppColors.grayTextWeak} size={14}/>
|
|
145
|
-
<Text style={styles.metaLabel}>
|
|
147
|
+
<Text style={styles.metaLabel}>{t('network.durationHeader')}</Text>
|
|
146
148
|
</View>
|
|
147
149
|
<View style={styles.metaValueRow}>
|
|
148
150
|
{duration != null && !isFailed && (<View style={[
|
|
@@ -157,10 +159,10 @@ const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, metho
|
|
|
157
159
|
{ color: getDurationColor(duration) },
|
|
158
160
|
]}>
|
|
159
161
|
{duration < DURATION_FAST_MS
|
|
160
|
-
? '
|
|
162
|
+
? t('network.perf.fast')
|
|
161
163
|
: duration < DURATION_SLOW_MS
|
|
162
|
-
? '
|
|
163
|
-
: '
|
|
164
|
+
? t('network.perf.moderate')
|
|
165
|
+
: t('network.perf.slow')}
|
|
164
166
|
</Text>
|
|
165
167
|
</View>)}
|
|
166
168
|
<Text style={styles.metaValue}>
|
|
@@ -173,7 +175,7 @@ const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, metho
|
|
|
173
175
|
<View style={styles.metaRow}>
|
|
174
176
|
<View style={styles.metaLabelRow}>
|
|
175
177
|
<SizeIcon color={AppColors.grayTextWeak}/>
|
|
176
|
-
<Text style={styles.metaLabel}>
|
|
178
|
+
<Text style={styles.metaLabel}>{t('network.sizeHeader')}</Text>
|
|
177
179
|
</View>
|
|
178
180
|
<Text style={styles.metaValue}>{size}</Text>
|
|
179
181
|
</View>
|
|
@@ -183,7 +185,7 @@ const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, metho
|
|
|
183
185
|
<View style={{ flexDirection: 'row', justifyContent: 'space-between', width: '100%', alignItems: 'center' }}>
|
|
184
186
|
<View style={styles.metaLabelRow}>
|
|
185
187
|
<GlobeIcon color={AppColors.grayTextWeak} size={14}/>
|
|
186
|
-
<Text style={styles.metaLabel}>
|
|
188
|
+
<Text style={styles.metaLabel}>{t('network.fullUrl')}</Text>
|
|
187
189
|
</View>
|
|
188
190
|
|
|
189
191
|
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 10 }}>
|
|
@@ -193,7 +195,7 @@ const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, metho
|
|
|
193
195
|
fontSize: 10.5,
|
|
194
196
|
color: AppColors.purple,
|
|
195
197
|
}}>
|
|
196
|
-
{urlExpanded ? '
|
|
198
|
+
{urlExpanded ? t('network.showLess') : t('network.showMore')}
|
|
197
199
|
</Text>
|
|
198
200
|
</TouchableScale>)}
|
|
199
201
|
|
|
@@ -204,18 +206,18 @@ const MetaAccordion = ({ status, statusColor, duration, size, triggeredAt, metho
|
|
|
204
206
|
color: AppColors.purple,
|
|
205
207
|
textDecorationLine: 'underline',
|
|
206
208
|
}}>
|
|
207
|
-
|
|
209
|
+
{t('network.open')}
|
|
208
210
|
</Text>
|
|
209
211
|
</TouchableScale>)}
|
|
210
212
|
</View>
|
|
211
213
|
</View>
|
|
212
214
|
|
|
213
215
|
<View style={{
|
|
214
|
-
backgroundColor:
|
|
216
|
+
backgroundColor: AppColors.slate50,
|
|
215
217
|
borderRadius: 8,
|
|
216
218
|
padding: 8,
|
|
217
219
|
borderWidth: 1.5,
|
|
218
|
-
borderColor:
|
|
220
|
+
borderColor: AppColors.slate200,
|
|
219
221
|
width: '100%',
|
|
220
222
|
marginTop: 2,
|
|
221
223
|
}}>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface NavigationTrackerProps {
|
|
3
|
+
onStateChange: (state: any) => void;
|
|
4
|
+
navigationRef?: any;
|
|
5
|
+
}
|
|
6
|
+
export declare const NavigationTracker: ({ onStateChange, navigationRef, }: NavigationTrackerProps) => React.ReactElement | null;
|
|
7
|
+
export default NavigationTracker;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React, { useContext, useEffect } from 'react';
|
|
2
|
+
import { NavigationContext, useNavigationState } from '@react-navigation/native';
|
|
3
|
+
const ContextNavigationTracker = ({ onStateChange, }) => {
|
|
4
|
+
const navState = useNavigationState(state => state);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
onStateChange(navState);
|
|
7
|
+
}, [navState, onStateChange]);
|
|
8
|
+
return null;
|
|
9
|
+
};
|
|
10
|
+
export const NavigationTracker = ({ onStateChange, navigationRef, }) => {
|
|
11
|
+
const navContext = useContext(NavigationContext);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (!navigationRef)
|
|
14
|
+
return;
|
|
15
|
+
const getRef = () => navigationRef?.current || navigationRef;
|
|
16
|
+
const handleStateChange = () => {
|
|
17
|
+
const ref = getRef();
|
|
18
|
+
if (!ref)
|
|
19
|
+
return;
|
|
20
|
+
if (typeof ref.getRootState === 'function') {
|
|
21
|
+
onStateChange(ref.getRootState());
|
|
22
|
+
}
|
|
23
|
+
else if (typeof ref.getState === 'function') {
|
|
24
|
+
onStateChange(ref.getState());
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
const ref = getRef();
|
|
28
|
+
if (ref && typeof ref.addListener === 'function') {
|
|
29
|
+
const unsubscribe = ref.addListener('state', handleStateChange);
|
|
30
|
+
handleStateChange();
|
|
31
|
+
return unsubscribe;
|
|
32
|
+
}
|
|
33
|
+
}, [navigationRef, onStateChange]);
|
|
34
|
+
if (navContext) {
|
|
35
|
+
return <ContextNavigationTracker onStateChange={onStateChange}/>;
|
|
36
|
+
}
|
|
37
|
+
return null;
|
|
38
|
+
};
|
|
39
|
+
export default NavigationTracker;
|
|
@@ -16,6 +16,9 @@ export declare const CopyIcon: ({ color, size }: any) => React.JSX.Element;
|
|
|
16
16
|
export declare const FetchIcon: ({ color, size }: any) => React.JSX.Element;
|
|
17
17
|
export declare const TerminalIcon: ({ color, size, }: any) => React.JSX.Element;
|
|
18
18
|
export declare const CheckIcon: ({ color, size }: any) => React.JSX.Element;
|
|
19
|
+
export declare const CircleCheckIcon: ({ color, size }: any) => React.JSX.Element;
|
|
20
|
+
export declare const CircleXIcon: ({ color, size }: any) => React.JSX.Element;
|
|
21
|
+
export declare const CircleAlertIcon: ({ color, size }: any) => React.JSX.Element;
|
|
19
22
|
export declare const FailIcon: ({ color, size }: any) => React.JSX.Element;
|
|
20
23
|
export declare const TrashIcon: ({ color, size }: any) => React.JSX.Element;
|
|
21
24
|
export declare const HeaderPauseIcon: ({ isPaused, color, size, }: any) => React.JSX.Element;
|
|
@@ -51,3 +54,6 @@ export declare const ErrorCircleIcon: ({ color, size, }: any) => React.JSX.Eleme
|
|
|
51
54
|
export declare const TrendingUpIcon: ({ color, size, }: any) => React.JSX.Element;
|
|
52
55
|
export declare const MotionIcon: ({ color, size, }: any) => React.JSX.Element;
|
|
53
56
|
export declare const SortIcon: ({ ascending, color, size, }: any) => React.JSX.Element;
|
|
57
|
+
export declare const PrettyIcon: ({ color, size, }: any) => React.JSX.Element;
|
|
58
|
+
export declare const RawIcon: ({ color, size, }: any) => React.JSX.Element;
|
|
59
|
+
export declare const TableIcon: ({ color, size, }: any) => React.JSX.Element;
|
|
@@ -101,6 +101,25 @@ export const CheckIcon = ({ color = AppColors.greenColor, size = 14 }) => {
|
|
|
101
101
|
<Path d="M20 6L9 17l-5-5" stroke={color} strokeWidth="2.5" strokeLinecap="round" strokeLinejoin="round"/>
|
|
102
102
|
</Svg>);
|
|
103
103
|
};
|
|
104
|
+
export const CircleCheckIcon = ({ color = AppColors.greenColor, size = 14 }) => {
|
|
105
|
+
return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
106
|
+
<Circle cx="12" cy="12" r="9" stroke={color} strokeWidth="2"/>
|
|
107
|
+
<Path d="M8.5 12.5l2.5 2.5 5-5.5" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
|
108
|
+
</Svg>);
|
|
109
|
+
};
|
|
110
|
+
export const CircleXIcon = ({ color = AppColors.errorColor, size = 14 }) => {
|
|
111
|
+
return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
112
|
+
<Circle cx="12" cy="12" r="9" stroke={color} strokeWidth="2"/>
|
|
113
|
+
<Path d="M9.5 9.5l5 5M14.5 9.5l-5 5" stroke={color} strokeWidth="2" strokeLinecap="round"/>
|
|
114
|
+
</Svg>);
|
|
115
|
+
};
|
|
116
|
+
export const CircleAlertIcon = ({ color = AppColors.warningIconGold, size = 14 }) => {
|
|
117
|
+
return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
118
|
+
<Circle cx="12" cy="12" r="9" stroke={color} strokeWidth="2"/>
|
|
119
|
+
<Path d="M12 7.5v5.5" stroke={color} strokeWidth="2" strokeLinecap="round"/>
|
|
120
|
+
<Circle cx="12" cy="16.5" r="1.1" fill={color}/>
|
|
121
|
+
</Svg>);
|
|
122
|
+
};
|
|
104
123
|
export const FailIcon = ({ color = AppColors.errorColor, size = 10 }) => {
|
|
105
124
|
return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
106
125
|
<Path d="M18 6L6 18M6 6l12 12" stroke={color} strokeWidth="3" strokeLinecap="round" strokeLinejoin="round"/>
|
|
@@ -164,12 +183,12 @@ export const DownloadIcon = ({ color = AppColors.primaryLight, size = 18, }) =>
|
|
|
164
183
|
<Path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
|
165
184
|
</Svg>);
|
|
166
185
|
};
|
|
167
|
-
export const CloseWhite = ({ color =
|
|
186
|
+
export const CloseWhite = ({ color = AppColors.white, size = 20 }) => {
|
|
168
187
|
return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
169
188
|
<Path d="M18 6L6 18M6 6l12 12" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
|
170
189
|
</Svg>);
|
|
171
190
|
};
|
|
172
|
-
export const WhiteBackNavigation = ({ color =
|
|
191
|
+
export const WhiteBackNavigation = ({ color = AppColors.white, size = 20 }) => {
|
|
173
192
|
return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
174
193
|
<Path d="M19 12H5M12 19l-7-7 7-7" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
|
175
194
|
</Svg>);
|
|
@@ -184,7 +203,7 @@ export const InsightsIcon = ({ color = AppColors.grayTextWeak, size = 14, }) =>
|
|
|
184
203
|
<Path d="M2 17l6-6 4 4 10-10M22 12V7h-5" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
|
185
204
|
</Svg>);
|
|
186
205
|
};
|
|
187
|
-
export const DebugIcon = ({ color =
|
|
206
|
+
export const DebugIcon = ({ color = AppColors.white, size = 18 }) => {
|
|
188
207
|
return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
189
208
|
{/* Hammer: diagonal from bottom-left to top-right */}
|
|
190
209
|
{/* Handle */}
|
|
@@ -202,13 +221,13 @@ export const DebugIcon = ({ color = '#FFFFFF', size = 18 }) => {
|
|
|
202
221
|
<Path d="M9 9L5 5M4.5 6.5l2-2" stroke={color} strokeWidth="2" strokeLinecap="round"/>
|
|
203
222
|
</Svg>);
|
|
204
223
|
};
|
|
205
|
-
export const SunIcon = ({ color =
|
|
224
|
+
export const SunIcon = ({ color = AppColors.white, size = 16 }) => {
|
|
206
225
|
return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
207
226
|
<Circle cx="12" cy="12" r="5" stroke={color} strokeWidth="2"/>
|
|
208
227
|
<Path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42" stroke={color} strokeWidth="2" strokeLinecap="round"/>
|
|
209
228
|
</Svg>);
|
|
210
229
|
};
|
|
211
|
-
export const MoonIcon = ({ color =
|
|
230
|
+
export const MoonIcon = ({ color = AppColors.white, size = 16 }) => {
|
|
212
231
|
return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
213
232
|
<Path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" fill={color} stroke={color} strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"/>
|
|
214
233
|
</Svg>);
|
|
@@ -249,7 +268,7 @@ export const FolderIcon = ({ color = AppColors.grayTextWeak, size = 14, }) => {
|
|
|
249
268
|
</Svg>);
|
|
250
269
|
};
|
|
251
270
|
// #3 — Broom/sweep "wipe" icon used by the header Clear-Everything button.
|
|
252
|
-
export const WipeIcon = ({ color =
|
|
271
|
+
export const WipeIcon = ({ color = AppColors.white, size = 16 }) => {
|
|
253
272
|
return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
254
273
|
{/* Handle */}
|
|
255
274
|
<Path d="M19.5 3.5L12.7 10.3" stroke={color} strokeWidth="2" strokeLinecap="round"/>
|
|
@@ -308,3 +327,24 @@ export const SortIcon = ({ ascending, color = AppColors.purple, size = 14, }) =>
|
|
|
308
327
|
<Path d="M12 20l6-6H6z" fill={!ascending ? color : AppColors.grayTextWeak}/>
|
|
309
328
|
</Svg>);
|
|
310
329
|
};
|
|
330
|
+
export const PrettyIcon = ({ color = AppColors.grayTextWeak, size = 14, }) => {
|
|
331
|
+
return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
332
|
+
<Path d="M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
|
333
|
+
<Path d="M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
|
|
334
|
+
</Svg>);
|
|
335
|
+
};
|
|
336
|
+
export const RawIcon = ({ color = AppColors.grayTextWeak, size = 14, }) => {
|
|
337
|
+
return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
338
|
+
<Line x1="21" y1="6" x2="3" y2="6" stroke={color} strokeWidth="2" strokeLinecap="round"/>
|
|
339
|
+
<Line x1="21" y1="12" x2="3" y2="12" stroke={color} strokeWidth="2" strokeLinecap="round"/>
|
|
340
|
+
<Line x1="17" y1="18" x2="3" y2="18" stroke={color} strokeWidth="2" strokeLinecap="round"/>
|
|
341
|
+
</Svg>);
|
|
342
|
+
};
|
|
343
|
+
export const TableIcon = ({ color = AppColors.grayTextWeak, size = 14, }) => {
|
|
344
|
+
return (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
|
|
345
|
+
<Rect x="3" y="3" width="7" height="7" rx="1.5" stroke={color} strokeWidth="2"/>
|
|
346
|
+
<Rect x="14" y="3" width="7" height="7" rx="1.5" stroke={color} strokeWidth="2"/>
|
|
347
|
+
<Rect x="14" y="14" width="7" height="7" rx="1.5" stroke={color} strokeWidth="2"/>
|
|
348
|
+
<Rect x="3" y="14" width="7" height="7" rx="1.5" stroke={color} strokeWidth="2"/>
|
|
349
|
+
</Svg>);
|
|
350
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface ReduxTabViewProps {
|
|
3
|
+
reduxState: any;
|
|
4
|
+
reduxSearch: string;
|
|
5
|
+
onSetReduxSearch: (val: string) => void;
|
|
6
|
+
reduxLastActionMap: Record<string, string>;
|
|
7
|
+
}
|
|
8
|
+
export declare const ReduxTabView: React.FC<ReduxTabViewProps>;
|
|
9
|
+
export default ReduxTabView;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Pressable, Text, TextInput, View, } from 'react-native';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
4
|
+
import { ReduxTreeView } from './ReduxTreeView';
|
|
5
|
+
import { TerminalIcon, ClearIcon, } from './NetworkIcons';
|
|
6
|
+
import { AppColors } from '../styles/AppColors';
|
|
7
|
+
import styles from '../styles';
|
|
8
|
+
export const ReduxTabView = React.memo(({ reduxState, reduxSearch, onSetReduxSearch, reduxLastActionMap, }) => {
|
|
9
|
+
const { t } = useTranslation();
|
|
10
|
+
if (!reduxState) {
|
|
11
|
+
return (<View style={styles.emptyContainer}>
|
|
12
|
+
<View style={styles.emptyIconWrap}>
|
|
13
|
+
<TerminalIcon color={AppColors.purple} size={32}/>
|
|
14
|
+
</View>
|
|
15
|
+
<Text style={styles.emptyTitle}>{t('redux.no_store_title')}</Text>
|
|
16
|
+
<Text style={styles.emptySub}>
|
|
17
|
+
{t('redux.no_store_sub')}
|
|
18
|
+
</Text>
|
|
19
|
+
</View>);
|
|
20
|
+
}
|
|
21
|
+
const reducerKeys = Object.keys(reduxState ?? {});
|
|
22
|
+
if (reducerKeys.length === 0) {
|
|
23
|
+
return (<View style={styles.emptyContainer}>
|
|
24
|
+
<Text style={styles.emptyTitle}>{t('redux.empty_store_title')}</Text>
|
|
25
|
+
<Text style={styles.emptySub}>{t('redux.empty_store_sub')}</Text>
|
|
26
|
+
</View>);
|
|
27
|
+
}
|
|
28
|
+
return (<View style={styles.flex1}>
|
|
29
|
+
{/* Search Bar */}
|
|
30
|
+
<View style={styles.searchBarWrap}>
|
|
31
|
+
<TextInput placeholder={t('search.redux_placeholder')} placeholderTextColor={AppColors.grayTextWeak} value={reduxSearch} onChangeText={onSetReduxSearch} style={styles.searchBarInput} autoCorrect={false} autoCapitalize="none"/>
|
|
32
|
+
{reduxSearch.length > 0 && (<Pressable onPress={() => onSetReduxSearch('')} hitSlop={10}>
|
|
33
|
+
<ClearIcon color={AppColors.grayTextWeak} size={14}/>
|
|
34
|
+
</Pressable>)}
|
|
35
|
+
</View>
|
|
36
|
+
|
|
37
|
+
{/* Main Content Card */}
|
|
38
|
+
<View style={styles.contentCard}>
|
|
39
|
+
<View style={styles.cardHeaderRow}>
|
|
40
|
+
<Text style={styles.sectionHeaderTitle}>{t('redux.root_reducers')}</Text>
|
|
41
|
+
<Text style={styles.subTextWeak}>
|
|
42
|
+
{reducerKeys.length} {t('redux.slices')}
|
|
43
|
+
</Text>
|
|
44
|
+
</View>
|
|
45
|
+
|
|
46
|
+
<ReduxTreeView state={reduxState} search={reduxSearch} lastActionMap={reduxLastActionMap}/>
|
|
47
|
+
</View>
|
|
48
|
+
</View>);
|
|
49
|
+
});
|
|
50
|
+
export default ReduxTabView;
|