react-native-inapp-inspector 2.3.5 → 2.3.6
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/dist/commonjs/analytics.d.ts +0 -4
- package/dist/commonjs/analytics.js +0 -4
- package/dist/commonjs/bundle.d.ts +0 -4
- package/dist/commonjs/bundle.js +0 -4
- package/dist/commonjs/components/AnalyticsDetail.js +18 -27
- package/dist/commonjs/components/AnalyticsEventCard.js +9 -12
- package/dist/commonjs/components/AnalyticsGraph.js +10 -15
- package/dist/commonjs/components/AppHeaderLogo.js +0 -3
- package/dist/commonjs/components/BrandCircleIcon.js +15 -15
- package/dist/commonjs/components/BrandSquareIcon.js +20 -20
- package/dist/commonjs/components/CodeSnippet.js +6 -19
- package/dist/commonjs/components/ConsoleLogCard.js +0 -1
- package/dist/commonjs/components/CopyButton.js +0 -4
- package/dist/commonjs/components/DiffViewer.js +0 -2
- package/dist/commonjs/components/DomainHeader.js +0 -4
- package/dist/commonjs/components/EmptyState.js +0 -3
- package/dist/commonjs/components/ErrorBoundary.js +5 -10
- package/dist/commonjs/components/HeadersSection.js +0 -5
- package/dist/commonjs/components/HighlightText.js +1 -4
- package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +11 -26
- package/dist/commonjs/components/Inspector/AnalyticsTab.js +34 -40
- package/dist/commonjs/components/Inspector/BundleTab.js +56 -84
- package/dist/commonjs/components/Inspector/ConsoleTab.js +7 -7
- package/dist/commonjs/components/Inspector/CrashDetail.js +18 -20
- package/dist/commonjs/components/Inspector/CrashFilterModal.js +0 -1
- package/dist/commonjs/components/Inspector/CrashTab.js +11 -20
- package/dist/commonjs/components/Inspector/DeviceInfoTab.js +12 -24
- package/dist/commonjs/components/Inspector/FabLauncher.js +1 -1
- package/dist/commonjs/components/Inspector/InspectorContext.js +0 -2
- package/dist/commonjs/components/Inspector/InspectorHeader.js +7 -8
- package/dist/commonjs/components/Inspector/LogDetail.js +27 -29
- package/dist/commonjs/components/Inspector/MainScreen.js +9 -10
- package/dist/commonjs/components/Inspector/NetworkDetail.js +10 -11
- package/dist/commonjs/components/Inspector/NetworkTab.js +14 -14
- package/dist/commonjs/components/Inspector/NpmUpdateToast.js +6 -9
- package/dist/commonjs/components/Inspector/PerformanceTab.js +30 -43
- package/dist/commonjs/components/Inspector/ReduxDetail.js +18 -34
- package/dist/commonjs/components/Inspector/ReduxTab.js +11 -20
- package/dist/commonjs/components/Inspector/SettingsPanel.js +32 -36
- package/dist/commonjs/components/Inspector/SkeletonPlaceholder.js +6 -6
- package/dist/commonjs/components/Inspector/StorageTab.js +14 -26
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +5 -6
- package/dist/commonjs/components/JsonViewer.js +3 -10
- package/dist/commonjs/components/LogCard.js +7 -7
- package/dist/commonjs/components/MetaAccordion.js +1 -7
- package/dist/commonjs/components/NetworkIcons.js +12 -16
- package/dist/commonjs/components/SectionHeader.js +0 -4
- package/dist/commonjs/components/SkeletonPlaceholder.js +6 -6
- package/dist/commonjs/components/Slider.js +6 -6
- package/dist/commonjs/components/SourcePageCard.js +0 -4
- package/dist/commonjs/components/TreeNode.js +0 -4
- package/dist/commonjs/console.d.ts +0 -4
- package/dist/commonjs/console.js +0 -4
- package/dist/commonjs/constants/index.js +6 -9
- package/dist/commonjs/constants/telemetryConfig.d.ts +7 -0
- package/dist/commonjs/constants/telemetryConfig.js +10 -0
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -3
- package/dist/commonjs/crash.d.ts +0 -4
- package/dist/commonjs/crash.js +0 -4
- package/dist/commonjs/customHooks/analyticsLogger.d.ts +0 -7
- package/dist/commonjs/customHooks/analyticsLogger.js +3 -59
- package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +0 -9
- package/dist/commonjs/customHooks/bundleAnalyzer.js +3 -86
- package/dist/commonjs/customHooks/consoleLogger.js +0 -16
- package/dist/commonjs/customHooks/crashHandler.d.ts +0 -28
- package/dist/commonjs/customHooks/crashHandler.js +0 -55
- package/dist/commonjs/customHooks/logFilters.d.ts +0 -4
- package/dist/commonjs/customHooks/logFilters.js +0 -11
- package/dist/commonjs/customHooks/networkLogger.js +2 -13
- package/dist/commonjs/customHooks/performanceTracker.d.ts +0 -27
- package/dist/commonjs/customHooks/performanceTracker.js +0 -31
- package/dist/commonjs/customHooks/reduxLogger.d.ts +0 -12
- package/dist/commonjs/customHooks/reduxLogger.js +0 -51
- package/dist/commonjs/customHooks/storageInspector.d.ts +0 -40
- package/dist/commonjs/customHooks/storageInspector.js +1 -56
- package/dist/commonjs/decorators/index.d.ts +0 -37
- package/dist/commonjs/decorators/index.js +0 -42
- package/dist/commonjs/helpers/gaAnalyticsRegistry.d.ts +0 -10
- package/dist/commonjs/helpers/gaAnalyticsRegistry.js +0 -26
- package/dist/commonjs/helpers/index.d.ts +0 -7
- package/dist/commonjs/helpers/index.js +1 -42
- package/dist/commonjs/helpers/memoryManager.d.ts +0 -11
- package/dist/commonjs/helpers/memoryManager.js +0 -13
- package/dist/commonjs/helpers/searchQueryParser.d.ts +0 -4
- package/dist/commonjs/helpers/searchQueryParser.js +0 -18
- package/dist/commonjs/helpers/settingsStore.js +0 -8
- package/dist/commonjs/helpers/telemetry.d.ts +2 -0
- package/dist/commonjs/helpers/telemetry.js +302 -0
- package/dist/commonjs/i18n/index.d.ts +0 -9
- package/dist/commonjs/i18n/index.js +0 -15
- package/dist/commonjs/index.js +15 -97
- package/dist/commonjs/native/NativeInspector.d.ts +0 -54
- package/dist/commonjs/native/NativeInspector.js +0 -56
- package/dist/commonjs/network.d.ts +0 -4
- package/dist/commonjs/network.js +0 -4
- package/dist/commonjs/performance.d.ts +0 -4
- package/dist/commonjs/performance.js +0 -4
- package/dist/commonjs/redux.d.ts +0 -4
- package/dist/commonjs/redux.js +0 -4
- package/dist/commonjs/storage.d.ts +0 -4
- package/dist/commonjs/storage.js +0 -4
- package/dist/commonjs/styles/AppColors.d.ts +0 -3
- package/dist/commonjs/styles/AppColors.js +15 -30
- package/dist/commonjs/styles/AppFonts.d.ts +0 -4
- package/dist/commonjs/styles/AppFonts.js +0 -4
- package/dist/commonjs/styles/common.js +0 -11
- package/dist/commonjs/styles/index.js +0 -8
- package/dist/commonjs/types/enums.js +0 -3
- package/dist/commonjs/types/interfaces.d.ts +3 -3
- package/dist/esm/analytics.d.ts +0 -4
- package/dist/esm/analytics.js +0 -4
- package/dist/esm/bundle.d.ts +0 -4
- package/dist/esm/bundle.js +0 -4
- package/dist/esm/components/AnalyticsDetail.js +18 -27
- package/dist/esm/components/AnalyticsEventCard.js +9 -12
- package/dist/esm/components/AnalyticsGraph.js +10 -15
- package/dist/esm/components/AppHeaderLogo.js +0 -3
- package/dist/esm/components/BrandCircleIcon.js +15 -15
- package/dist/esm/components/BrandSquareIcon.js +20 -20
- package/dist/esm/components/CodeSnippet.js +6 -19
- package/dist/esm/components/ConsoleLogCard.js +0 -1
- package/dist/esm/components/CopyButton.js +0 -4
- package/dist/esm/components/DiffViewer.js +0 -2
- package/dist/esm/components/DomainHeader.js +0 -4
- package/dist/esm/components/EmptyState.js +0 -3
- package/dist/esm/components/ErrorBoundary.js +5 -10
- package/dist/esm/components/HeadersSection.js +0 -5
- package/dist/esm/components/HighlightText.js +1 -4
- package/dist/esm/components/Inspector/AnalyticsFilterModal.js +11 -26
- package/dist/esm/components/Inspector/AnalyticsTab.js +34 -40
- package/dist/esm/components/Inspector/BundleTab.js +56 -84
- package/dist/esm/components/Inspector/ConsoleTab.js +7 -7
- package/dist/esm/components/Inspector/CrashDetail.js +18 -20
- package/dist/esm/components/Inspector/CrashFilterModal.js +0 -1
- package/dist/esm/components/Inspector/CrashTab.js +11 -20
- package/dist/esm/components/Inspector/DeviceInfoTab.js +12 -24
- package/dist/esm/components/Inspector/FabLauncher.js +1 -1
- package/dist/esm/components/Inspector/InspectorContext.js +0 -2
- package/dist/esm/components/Inspector/InspectorHeader.js +7 -8
- package/dist/esm/components/Inspector/LogDetail.js +27 -29
- package/dist/esm/components/Inspector/MainScreen.js +9 -10
- package/dist/esm/components/Inspector/NetworkDetail.js +10 -11
- package/dist/esm/components/Inspector/NetworkTab.js +14 -14
- package/dist/esm/components/Inspector/NpmUpdateToast.js +6 -9
- package/dist/esm/components/Inspector/PerformanceTab.js +30 -43
- package/dist/esm/components/Inspector/ReduxDetail.js +18 -34
- package/dist/esm/components/Inspector/ReduxTab.js +11 -20
- package/dist/esm/components/Inspector/SettingsPanel.js +32 -36
- package/dist/esm/components/Inspector/SkeletonPlaceholder.js +6 -6
- package/dist/esm/components/Inspector/StorageTab.js +14 -26
- package/dist/esm/components/Inspector/UpdateAvailableModal.js +5 -6
- package/dist/esm/components/JsonViewer.js +3 -10
- package/dist/esm/components/LogCard.js +7 -7
- package/dist/esm/components/MetaAccordion.js +1 -7
- package/dist/esm/components/NetworkIcons.js +12 -16
- package/dist/esm/components/SectionHeader.js +0 -4
- package/dist/esm/components/SkeletonPlaceholder.js +6 -6
- package/dist/esm/components/Slider.js +6 -6
- package/dist/esm/components/SourcePageCard.js +0 -4
- package/dist/esm/components/TreeNode.js +0 -4
- package/dist/esm/console.d.ts +0 -4
- package/dist/esm/console.js +0 -4
- package/dist/esm/constants/index.js +6 -9
- package/dist/esm/constants/telemetryConfig.d.ts +7 -0
- package/dist/esm/constants/telemetryConfig.js +7 -0
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -3
- package/dist/esm/crash.d.ts +0 -4
- package/dist/esm/crash.js +0 -4
- package/dist/esm/customHooks/analyticsLogger.d.ts +0 -7
- package/dist/esm/customHooks/analyticsLogger.js +3 -59
- package/dist/esm/customHooks/bundleAnalyzer.d.ts +0 -9
- package/dist/esm/customHooks/bundleAnalyzer.js +3 -86
- package/dist/esm/customHooks/consoleLogger.js +0 -16
- package/dist/esm/customHooks/crashHandler.d.ts +0 -28
- package/dist/esm/customHooks/crashHandler.js +0 -55
- package/dist/esm/customHooks/logFilters.d.ts +0 -4
- package/dist/esm/customHooks/logFilters.js +0 -11
- package/dist/esm/customHooks/networkLogger.js +2 -13
- package/dist/esm/customHooks/performanceTracker.d.ts +0 -27
- package/dist/esm/customHooks/performanceTracker.js +0 -31
- package/dist/esm/customHooks/reduxLogger.d.ts +0 -12
- package/dist/esm/customHooks/reduxLogger.js +0 -51
- package/dist/esm/customHooks/storageInspector.d.ts +0 -40
- package/dist/esm/customHooks/storageInspector.js +1 -56
- package/dist/esm/decorators/index.d.ts +0 -37
- package/dist/esm/decorators/index.js +0 -42
- package/dist/esm/helpers/gaAnalyticsRegistry.d.ts +0 -10
- package/dist/esm/helpers/gaAnalyticsRegistry.js +0 -26
- package/dist/esm/helpers/index.d.ts +0 -7
- package/dist/esm/helpers/index.js +1 -42
- package/dist/esm/helpers/memoryManager.d.ts +0 -11
- package/dist/esm/helpers/memoryManager.js +0 -13
- package/dist/esm/helpers/searchQueryParser.d.ts +0 -4
- package/dist/esm/helpers/searchQueryParser.js +0 -18
- package/dist/esm/helpers/settingsStore.js +0 -8
- package/dist/esm/helpers/telemetry.d.ts +2 -0
- package/dist/esm/helpers/telemetry.js +298 -0
- package/dist/esm/i18n/index.d.ts +0 -9
- package/dist/esm/i18n/index.js +0 -15
- package/dist/esm/index.js +15 -97
- package/dist/esm/native/NativeInspector.d.ts +0 -54
- package/dist/esm/native/NativeInspector.js +0 -56
- package/dist/esm/network.d.ts +0 -4
- package/dist/esm/network.js +0 -4
- package/dist/esm/performance.d.ts +0 -4
- package/dist/esm/performance.js +0 -4
- package/dist/esm/redux.d.ts +0 -4
- package/dist/esm/redux.js +0 -4
- package/dist/esm/storage.d.ts +0 -4
- package/dist/esm/storage.js +0 -4
- package/dist/esm/styles/AppColors.d.ts +0 -3
- package/dist/esm/styles/AppColors.js +15 -30
- package/dist/esm/styles/AppFonts.d.ts +0 -4
- package/dist/esm/styles/AppFonts.js +0 -4
- package/dist/esm/styles/common.js +0 -11
- package/dist/esm/styles/index.js +0 -8
- package/dist/esm/types/enums.js +0 -3
- package/dist/esm/types/interfaces.d.ts +3 -3
- package/package.json +2 -2
- package/src/constants/telemetryConfig.ts +16 -0
- package/src/constants/version.ts +1 -1
- package/src/helpers/telemetry.ts +341 -0
- package/src/index.tsx +15 -1
- package/src/types/interfaces.ts +3 -0
|
@@ -170,10 +170,10 @@ const LogDetail = React.memo(() => {
|
|
|
170
170
|
},
|
|
171
171
|
];
|
|
172
172
|
return (<View style={{ flex: 1 }}>
|
|
173
|
-
|
|
173
|
+
|
|
174
174
|
<View style={styles.detailInfoBar}>
|
|
175
175
|
<View style={{ flexDirection: 'column', gap: 10 }}>
|
|
176
|
-
|
|
176
|
+
|
|
177
177
|
<View style={{
|
|
178
178
|
flexDirection: 'row',
|
|
179
179
|
alignItems: 'center',
|
|
@@ -187,7 +187,7 @@ const LogDetail = React.memo(() => {
|
|
|
187
187
|
flex: 1,
|
|
188
188
|
flexWrap: 'wrap',
|
|
189
189
|
}}>
|
|
190
|
-
|
|
190
|
+
|
|
191
191
|
<View style={[
|
|
192
192
|
styles.typeChip,
|
|
193
193
|
{
|
|
@@ -210,7 +210,7 @@ const LogDetail = React.memo(() => {
|
|
|
210
210
|
</Text>
|
|
211
211
|
</View>
|
|
212
212
|
|
|
213
|
-
|
|
213
|
+
|
|
214
214
|
<View style={[
|
|
215
215
|
styles.metaChip,
|
|
216
216
|
{
|
|
@@ -227,7 +227,7 @@ const LogDetail = React.memo(() => {
|
|
|
227
227
|
</Text>
|
|
228
228
|
</View>
|
|
229
229
|
|
|
230
|
-
|
|
230
|
+
|
|
231
231
|
{jsonContent && (<View style={[
|
|
232
232
|
styles.metaChip,
|
|
233
233
|
{
|
|
@@ -245,7 +245,7 @@ const LogDetail = React.memo(() => {
|
|
|
245
245
|
</Text>
|
|
246
246
|
</View>)}
|
|
247
247
|
|
|
248
|
-
|
|
248
|
+
|
|
249
249
|
{selectedLog.duplicateCount != null &&
|
|
250
250
|
selectedLog.duplicateCount > 1 && (<View style={[
|
|
251
251
|
styles.metaChip,
|
|
@@ -265,11 +265,11 @@ const LogDetail = React.memo(() => {
|
|
|
265
265
|
</View>)}
|
|
266
266
|
</View>
|
|
267
267
|
|
|
268
|
-
|
|
268
|
+
|
|
269
269
|
<CopyButton value={selectedLog.message} label={t('console.logMessage')}/>
|
|
270
270
|
</View>
|
|
271
271
|
|
|
272
|
-
|
|
272
|
+
|
|
273
273
|
<View style={{ gap: 4 }}>
|
|
274
274
|
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 6, flexWrap: 'wrap' }}>
|
|
275
275
|
{originFrame?.fileExt && originFrame.fileExt !== 'other' && (<View style={{
|
|
@@ -328,7 +328,7 @@ const LogDetail = React.memo(() => {
|
|
|
328
328
|
</Pressable>)}
|
|
329
329
|
</View>
|
|
330
330
|
|
|
331
|
-
|
|
331
|
+
|
|
332
332
|
<View style={{
|
|
333
333
|
flexDirection: 'row',
|
|
334
334
|
alignItems: 'center',
|
|
@@ -363,12 +363,12 @@ const LogDetail = React.memo(() => {
|
|
|
363
363
|
</View>
|
|
364
364
|
</View>
|
|
365
365
|
|
|
366
|
-
|
|
366
|
+
|
|
367
367
|
<View style={detailStyles.tabsHeaderWrap}>
|
|
368
368
|
<SegmentedTabs tabs={subTabs} activeKey={activeTab} onChange={key => setActiveTab(key)}/>
|
|
369
369
|
</View>
|
|
370
370
|
|
|
371
|
-
|
|
371
|
+
|
|
372
372
|
{activeTab !== 'metadata' && (<View style={{ paddingHorizontal: 12, paddingTop: 6, paddingBottom: 4 }}>
|
|
373
373
|
<View style={[styles.detailSearchRow, { marginBottom: 0 }]}>
|
|
374
374
|
<View style={[
|
|
@@ -390,14 +390,14 @@ const LogDetail = React.memo(() => {
|
|
|
390
390
|
</View>
|
|
391
391
|
</View>)}
|
|
392
392
|
|
|
393
|
-
|
|
393
|
+
|
|
394
394
|
<ScrollView style={{ flex: 1 }} contentContainerStyle={{
|
|
395
395
|
paddingHorizontal: 12,
|
|
396
396
|
paddingTop: 6,
|
|
397
397
|
paddingBottom: 28,
|
|
398
398
|
flexGrow: 1,
|
|
399
399
|
}} showsVerticalScrollIndicator={true} keyboardShouldPersistTaps="handled">
|
|
400
|
-
|
|
400
|
+
|
|
401
401
|
{activeTab === 'output' && (<View style={[
|
|
402
402
|
styles.sectionContainer,
|
|
403
403
|
{
|
|
@@ -411,7 +411,7 @@ const LogDetail = React.memo(() => {
|
|
|
411
411
|
flex: 1,
|
|
412
412
|
},
|
|
413
413
|
]}>
|
|
414
|
-
|
|
414
|
+
|
|
415
415
|
<View style={{
|
|
416
416
|
flexDirection: 'column',
|
|
417
417
|
gap: 8,
|
|
@@ -467,7 +467,7 @@ const LogDetail = React.memo(() => {
|
|
|
467
467
|
]} activeKey={viewMode} onChange={key => setViewMode(key)}/>)}
|
|
468
468
|
</View>
|
|
469
469
|
|
|
470
|
-
|
|
470
|
+
|
|
471
471
|
<View style={{ padding: 12, flex: 1 }}>
|
|
472
472
|
{jsonContent ? (<>
|
|
473
473
|
{jsonContent.header ? (<View style={{
|
|
@@ -514,7 +514,7 @@ const LogDetail = React.memo(() => {
|
|
|
514
514
|
</View>
|
|
515
515
|
</View>)}
|
|
516
516
|
|
|
517
|
-
|
|
517
|
+
|
|
518
518
|
{activeTab === 'arguments' && selectedLog.rawArgs && (<View style={{ gap: 10 }}>
|
|
519
519
|
{selectedLog.rawArgs.map((arg, idx) => {
|
|
520
520
|
const argType = arg === null
|
|
@@ -596,7 +596,7 @@ const LogDetail = React.memo(() => {
|
|
|
596
596
|
})}
|
|
597
597
|
</View>)}
|
|
598
598
|
|
|
599
|
-
|
|
599
|
+
|
|
600
600
|
{activeTab === 'stack' && (<View style={[
|
|
601
601
|
styles.sectionContainer,
|
|
602
602
|
{
|
|
@@ -609,7 +609,7 @@ const LogDetail = React.memo(() => {
|
|
|
609
609
|
overflow: 'hidden',
|
|
610
610
|
},
|
|
611
611
|
]}>
|
|
612
|
-
|
|
612
|
+
|
|
613
613
|
<View style={{
|
|
614
614
|
flexDirection: 'column',
|
|
615
615
|
gap: 8,
|
|
@@ -621,7 +621,7 @@ const LogDetail = React.memo(() => {
|
|
|
621
621
|
? AppColors.primaryLight
|
|
622
622
|
: AppColors.grayBackground,
|
|
623
623
|
}}>
|
|
624
|
-
|
|
624
|
+
|
|
625
625
|
<View style={{
|
|
626
626
|
flexDirection: 'row',
|
|
627
627
|
alignItems: 'center',
|
|
@@ -704,7 +704,7 @@ const LogDetail = React.memo(() => {
|
|
|
704
704
|
</View>
|
|
705
705
|
</View>
|
|
706
706
|
|
|
707
|
-
|
|
707
|
+
|
|
708
708
|
{selectedLog.errorStack && (<SegmentedTabs tabs={[
|
|
709
709
|
{
|
|
710
710
|
key: 'caller',
|
|
@@ -716,7 +716,7 @@ const LogDetail = React.memo(() => {
|
|
|
716
716
|
},
|
|
717
717
|
]} activeKey={stackSource} onChange={key => setStackSource(key)}/>)}
|
|
718
718
|
|
|
719
|
-
|
|
719
|
+
|
|
720
720
|
<SegmentedTabs tabs={[
|
|
721
721
|
{
|
|
722
722
|
key: 'app',
|
|
@@ -729,7 +729,7 @@ const LogDetail = React.memo(() => {
|
|
|
729
729
|
]} activeKey={stackFilter} onChange={key => setStackFilter(key)}/>
|
|
730
730
|
</View>
|
|
731
731
|
|
|
732
|
-
|
|
732
|
+
|
|
733
733
|
{stackViewMode === 'structured' ? (<View style={{ padding: 12, gap: 10 }}>
|
|
734
734
|
{displayedFrames.length > 0 ? (displayedFrames.map((frame, frameIdx) => {
|
|
735
735
|
const isTopFrame = frameIdx === 0;
|
|
@@ -759,7 +759,7 @@ const LogDetail = React.memo(() => {
|
|
|
759
759
|
padding: 11,
|
|
760
760
|
gap: 6,
|
|
761
761
|
}}>
|
|
762
|
-
|
|
762
|
+
|
|
763
763
|
<View style={{
|
|
764
764
|
flexDirection: 'row',
|
|
765
765
|
alignItems: 'center',
|
|
@@ -833,7 +833,7 @@ const LogDetail = React.memo(() => {
|
|
|
833
833
|
</View>
|
|
834
834
|
</View>
|
|
835
835
|
|
|
836
|
-
|
|
836
|
+
|
|
837
837
|
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 5 }}>
|
|
838
838
|
<HighlightText text={frame.functionName !== '<anonymous>' ? `${frame.functionName}()` : '<anonymous>'} search={detailSearch} style={{
|
|
839
839
|
fontFamily: AppFonts.interBold,
|
|
@@ -845,7 +845,7 @@ const LogDetail = React.memo(() => {
|
|
|
845
845
|
}}/>
|
|
846
846
|
</View>
|
|
847
847
|
|
|
848
|
-
|
|
848
|
+
|
|
849
849
|
<View style={{
|
|
850
850
|
flexDirection: 'row',
|
|
851
851
|
alignItems: 'center',
|
|
@@ -899,9 +899,7 @@ const LogDetail = React.memo(() => {
|
|
|
899
899
|
}}>
|
|
900
900
|
{t('console.noStackAvailable')}
|
|
901
901
|
</Text>)}
|
|
902
|
-
</View>) : (
|
|
903
|
-
/* Raw Full Trace Monospace Block */
|
|
904
|
-
<View style={{
|
|
902
|
+
</View>) : (<View style={{
|
|
905
903
|
backgroundColor: AppColors.primaryLight,
|
|
906
904
|
padding: 12,
|
|
907
905
|
}}>
|
|
@@ -935,7 +933,7 @@ const LogDetail = React.memo(() => {
|
|
|
935
933
|
</View>)}
|
|
936
934
|
</View>)}
|
|
937
935
|
|
|
938
|
-
|
|
936
|
+
|
|
939
937
|
{activeTab === 'metadata' && (<View style={[
|
|
940
938
|
styles.sectionContainer,
|
|
941
939
|
{
|
|
@@ -32,7 +32,6 @@ const MainScreen = () => {
|
|
|
32
32
|
(activeTab === 'logs' && selectedLog != null) ||
|
|
33
33
|
(activeTab === 'redux' && (selectedReduxSlice != null || selectedReduxAction != null)) ||
|
|
34
34
|
(activeTab === 'crash' && selectedCrash != null);
|
|
35
|
-
// ─── 60 FPS Transition Animations ──────────────────────────────────────────
|
|
36
35
|
const detailAnim = useRef(new Animated.Value(0)).current;
|
|
37
36
|
useEffect(() => {
|
|
38
37
|
if (isDetailActive) {
|
|
@@ -88,11 +87,11 @@ const MainScreen = () => {
|
|
|
88
87
|
<InspectorHeader />
|
|
89
88
|
|
|
90
89
|
<View style={{ flex: 1 }}>
|
|
91
|
-
|
|
90
|
+
|
|
92
91
|
{!isDetailActive && <TabBar />}
|
|
93
92
|
|
|
94
93
|
{isReady ? (<View style={{ flex: 1 }}>
|
|
95
|
-
|
|
94
|
+
|
|
96
95
|
<Animated.View style={[
|
|
97
96
|
{
|
|
98
97
|
flex: 1,
|
|
@@ -121,7 +120,7 @@ const MainScreen = () => {
|
|
|
121
120
|
{activeTab === 'storage' && <StorageTab />}
|
|
122
121
|
</Animated.View>
|
|
123
122
|
|
|
124
|
-
|
|
123
|
+
|
|
125
124
|
{isDetailActive && (<Animated.View style={[
|
|
126
125
|
StyleSheet.absoluteFill,
|
|
127
126
|
{
|
|
@@ -145,7 +144,7 @@ const MainScreen = () => {
|
|
|
145
144
|
</Animated.View>)}
|
|
146
145
|
</View>) : (<MainScreenSkeleton />)}
|
|
147
146
|
|
|
148
|
-
|
|
147
|
+
|
|
149
148
|
{settingsPage !== null && (<Animated.View style={[
|
|
150
149
|
StyleSheet.absoluteFill,
|
|
151
150
|
{
|
|
@@ -165,10 +164,10 @@ const MainScreen = () => {
|
|
|
165
164
|
</Animated.View>)}
|
|
166
165
|
</View>
|
|
167
166
|
|
|
168
|
-
|
|
167
|
+
|
|
169
168
|
<Toast />
|
|
170
169
|
|
|
171
|
-
|
|
170
|
+
|
|
172
171
|
<NpmUpdateToast />
|
|
173
172
|
</View>
|
|
174
173
|
</View>
|
|
@@ -196,7 +195,7 @@ const MainScreenSkeleton = React.memo(function MainScreenSkeleton() {
|
|
|
196
195
|
return () => animation.stop();
|
|
197
196
|
}, [shimmerAnim]);
|
|
198
197
|
return (<View style={skeletonStyles.container}>
|
|
199
|
-
|
|
198
|
+
|
|
200
199
|
<View style={skeletonStyles.toolbarSkeleton}>
|
|
201
200
|
<Animated.View style={[skeletonStyles.searchBarSkeleton, { opacity: shimmerAnim }]}/>
|
|
202
201
|
<View style={skeletonStyles.actionButtonsRow}>
|
|
@@ -205,7 +204,7 @@ const MainScreenSkeleton = React.memo(function MainScreenSkeleton() {
|
|
|
205
204
|
</View>
|
|
206
205
|
</View>
|
|
207
206
|
|
|
208
|
-
|
|
207
|
+
|
|
209
208
|
<View style={skeletonStyles.chipStripSkeleton}>
|
|
210
209
|
<Animated.View style={[skeletonStyles.chipSkeleton, { width: 48, opacity: shimmerAnim }]}/>
|
|
211
210
|
<Animated.View style={[skeletonStyles.chipSkeleton, { width: 68, opacity: shimmerAnim }]}/>
|
|
@@ -213,7 +212,7 @@ const MainScreenSkeleton = React.memo(function MainScreenSkeleton() {
|
|
|
213
212
|
<Animated.View style={[skeletonStyles.chipSkeleton, { width: 58, opacity: shimmerAnim }]}/>
|
|
214
213
|
</View>
|
|
215
214
|
|
|
216
|
-
|
|
215
|
+
|
|
217
216
|
{[0, 1, 2, 3].map(i => (<Animated.View key={`skeleton_card_${i}`} style={[skeletonStyles.cardSkeleton, { opacity: shimmerAnim }]}>
|
|
218
217
|
<View style={skeletonStyles.cardTopRow}>
|
|
219
218
|
<View style={skeletonStyles.badgeGroup}>
|
|
@@ -43,7 +43,7 @@ const NetworkDetail = React.memo(() => {
|
|
|
43
43
|
if (!selected)
|
|
44
44
|
return null;
|
|
45
45
|
return (<View style={{ flex: 1 }}>
|
|
46
|
-
|
|
46
|
+
|
|
47
47
|
<View style={{ paddingHorizontal: 6, paddingTop: 4 }}>
|
|
48
48
|
<View style={styles.detailInfoBar}>
|
|
49
49
|
{(() => {
|
|
@@ -52,7 +52,6 @@ const NetworkDetail = React.memo(() => {
|
|
|
52
52
|
let pathStr = detailDisplayUrl;
|
|
53
53
|
let queryStr = '';
|
|
54
54
|
try {
|
|
55
|
-
// Simple parsing fallback for React Native environments
|
|
56
55
|
const qIndex = detailDisplayUrl.indexOf('?');
|
|
57
56
|
let cleanUrlForParsing = detailDisplayUrl;
|
|
58
57
|
if (qIndex !== -1) {
|
|
@@ -96,7 +95,7 @@ const NetworkDetail = React.memo(() => {
|
|
|
96
95
|
flexWrap: 'wrap',
|
|
97
96
|
flex: 1,
|
|
98
97
|
}}>
|
|
99
|
-
|
|
98
|
+
|
|
100
99
|
<View style={[
|
|
101
100
|
styles.methodBadge,
|
|
102
101
|
{
|
|
@@ -117,7 +116,7 @@ const NetworkDetail = React.memo(() => {
|
|
|
117
116
|
</Text>
|
|
118
117
|
</View>
|
|
119
118
|
|
|
120
|
-
|
|
119
|
+
|
|
121
120
|
{selected.client && (<View style={[
|
|
122
121
|
styles.chip,
|
|
123
122
|
{
|
|
@@ -158,7 +157,7 @@ const NetworkDetail = React.memo(() => {
|
|
|
158
157
|
</Text>
|
|
159
158
|
</View>)}
|
|
160
159
|
|
|
161
|
-
|
|
160
|
+
|
|
162
161
|
{selected.status != null && (<View style={[
|
|
163
162
|
styles.chip,
|
|
164
163
|
{
|
|
@@ -195,7 +194,7 @@ const NetworkDetail = React.memo(() => {
|
|
|
195
194
|
</Text>
|
|
196
195
|
</View>)}
|
|
197
196
|
|
|
198
|
-
|
|
197
|
+
|
|
199
198
|
{selected.duration != null && (<View style={[
|
|
200
199
|
styles.chip,
|
|
201
200
|
{
|
|
@@ -220,7 +219,7 @@ const NetworkDetail = React.memo(() => {
|
|
|
220
219
|
</Text>
|
|
221
220
|
</View>)}
|
|
222
221
|
|
|
223
|
-
|
|
222
|
+
|
|
224
223
|
{selected.response != null && (<View style={[
|
|
225
224
|
styles.chip,
|
|
226
225
|
{
|
|
@@ -256,7 +255,7 @@ const NetworkDetail = React.memo(() => {
|
|
|
256
255
|
</View>
|
|
257
256
|
</View>
|
|
258
257
|
|
|
259
|
-
|
|
258
|
+
|
|
260
259
|
<Pressable style={{
|
|
261
260
|
backgroundColor: AppColors.grayBackground,
|
|
262
261
|
borderRadius: 10,
|
|
@@ -339,7 +338,7 @@ const NetworkDetail = React.memo(() => {
|
|
|
339
338
|
</View>
|
|
340
339
|
</View>
|
|
341
340
|
|
|
342
|
-
|
|
341
|
+
|
|
343
342
|
<Text selectable={true} style={{
|
|
344
343
|
fontFamily: AppFonts.interMedium,
|
|
345
344
|
fontSize: 12.5,
|
|
@@ -355,7 +354,7 @@ const NetworkDetail = React.memo(() => {
|
|
|
355
354
|
</View>
|
|
356
355
|
</View>
|
|
357
356
|
|
|
358
|
-
|
|
357
|
+
|
|
359
358
|
<SegmentedTabs tabs={[
|
|
360
359
|
{
|
|
361
360
|
key: 'metadata',
|
|
@@ -386,7 +385,7 @@ const NetworkDetail = React.memo(() => {
|
|
|
386
385
|
setApiDetailActiveTab(tab);
|
|
387
386
|
}} style={{ marginHorizontal: 6, marginBottom: 10, marginTop: 6 }}/>
|
|
388
387
|
|
|
389
|
-
|
|
388
|
+
|
|
390
389
|
<ScrollView style={styles.detailScroll} contentContainerStyle={{
|
|
391
390
|
paddingHorizontal: 6,
|
|
392
391
|
paddingBottom: 24,
|
|
@@ -333,7 +333,7 @@ const NetworkTab = React.memo(() => {
|
|
|
333
333
|
]);
|
|
334
334
|
return (<View style={{ flex: 1 }}>
|
|
335
335
|
<FlatList ref={apisListRef} data={groupedData} keyExtractor={item => item?.id?.toString()} renderItem={renderItem} initialNumToRender={12} maxToRenderPerBatch={8} windowSize={5} removeClippedSubviews={true} renderToHardwareTextureAndroid={true} ListHeaderComponent={<View style={{ marginTop: 6 }}>
|
|
336
|
-
|
|
336
|
+
|
|
337
337
|
{networkMetrics != null && networkMetrics.totalCount > 0 && (<View style={{
|
|
338
338
|
flexDirection: 'row',
|
|
339
339
|
alignItems: 'center',
|
|
@@ -347,7 +347,7 @@ const NetworkTab = React.memo(() => {
|
|
|
347
347
|
borderWidth: 1,
|
|
348
348
|
borderColor: AppColors.dividerColor,
|
|
349
349
|
}}>
|
|
350
|
-
|
|
350
|
+
|
|
351
351
|
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 4.5 }}>
|
|
352
352
|
<View style={{
|
|
353
353
|
width: 6,
|
|
@@ -369,7 +369,7 @@ const NetworkTab = React.memo(() => {
|
|
|
369
369
|
|
|
370
370
|
<View style={{ width: 1, height: 11, backgroundColor: AppColors.dividerColor }}/>
|
|
371
371
|
|
|
372
|
-
|
|
372
|
+
|
|
373
373
|
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 4 }}>
|
|
374
374
|
<ClockIcon color={AppColors.purple} size={10}/>
|
|
375
375
|
<Text style={{ fontFamily: AppFonts.interBold, fontSize: 10.5, color: AppColors.purple }}>
|
|
@@ -382,7 +382,7 @@ const NetworkTab = React.memo(() => {
|
|
|
382
382
|
|
|
383
383
|
<View style={{ width: 1, height: 11, backgroundColor: AppColors.dividerColor }}/>
|
|
384
384
|
|
|
385
|
-
|
|
385
|
+
|
|
386
386
|
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 4 }}>
|
|
387
387
|
<Text style={{ fontFamily: AppFonts.interBold, fontSize: 10.5, color: AppColors.primaryBlack }}>
|
|
388
388
|
{networkMetrics.p95}ms
|
|
@@ -393,7 +393,7 @@ const NetworkTab = React.memo(() => {
|
|
|
393
393
|
</View>
|
|
394
394
|
</View>)}
|
|
395
395
|
|
|
396
|
-
|
|
396
|
+
|
|
397
397
|
<View style={styles.toolbarRow}>
|
|
398
398
|
<View style={[
|
|
399
399
|
styles.searchContainer,
|
|
@@ -407,7 +407,7 @@ const NetworkTab = React.memo(() => {
|
|
|
407
407
|
: AppColors.grayTextWeak} size={15}/>
|
|
408
408
|
<TextInput placeholder="Search url, body, is:error, slow:>1s..." placeholderTextColor={AppColors.grayTextWeak} value={search} onChangeText={setSearch} onFocus={() => setIsSearchFocused(true)} onBlur={() => setIsSearchFocused(false)} style={styles.searchInput} autoCorrect={false} autoCapitalize="none"/>
|
|
409
409
|
|
|
410
|
-
|
|
410
|
+
|
|
411
411
|
<View style={{
|
|
412
412
|
flexDirection: 'row',
|
|
413
413
|
alignItems: 'center',
|
|
@@ -532,7 +532,7 @@ const NetworkTab = React.memo(() => {
|
|
|
532
532
|
</View>
|
|
533
533
|
</View>
|
|
534
534
|
|
|
535
|
-
|
|
535
|
+
|
|
536
536
|
<View style={{ paddingBottom: 4 }}>
|
|
537
537
|
<ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={{
|
|
538
538
|
paddingHorizontal: 12,
|
|
@@ -541,7 +541,7 @@ const NetworkTab = React.memo(() => {
|
|
|
541
541
|
gap: 5,
|
|
542
542
|
paddingVertical: 2,
|
|
543
543
|
}}>
|
|
544
|
-
|
|
544
|
+
|
|
545
545
|
{SEARCH_SCOPES.map(s => {
|
|
546
546
|
const isActive = searchScope === s.id;
|
|
547
547
|
return (<TouchableScale key={`scope_${s.id}`} onPress={() => setSearchScope(s.id)} hitSlop={6} style={{
|
|
@@ -577,7 +577,7 @@ const NetworkTab = React.memo(() => {
|
|
|
577
577
|
marginHorizontal: 3,
|
|
578
578
|
}}/>
|
|
579
579
|
|
|
580
|
-
|
|
580
|
+
|
|
581
581
|
{QUICK_API_QUERY_TAGS.map(q => {
|
|
582
582
|
const isActive = search.includes(q.query);
|
|
583
583
|
return (<TouchableScale key={`quick_${q.query}`} onPress={() => {
|
|
@@ -620,7 +620,7 @@ const NetworkTab = React.memo(() => {
|
|
|
620
620
|
</ScrollView>
|
|
621
621
|
</View>
|
|
622
622
|
|
|
623
|
-
|
|
623
|
+
|
|
624
624
|
<View style={{ marginBottom: 8 }}>
|
|
625
625
|
<ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={{
|
|
626
626
|
paddingHorizontal: 12,
|
|
@@ -688,7 +688,7 @@ const NetworkTab = React.memo(() => {
|
|
|
688
688
|
</ScrollView>
|
|
689
689
|
</View>
|
|
690
690
|
|
|
691
|
-
|
|
691
|
+
|
|
692
692
|
{(isSearchFocused || search.length > 0) && (<View style={{
|
|
693
693
|
flexDirection: 'row',
|
|
694
694
|
alignItems: 'center',
|
|
@@ -745,7 +745,7 @@ const NetworkTab = React.memo(() => {
|
|
|
745
745
|
</ScrollView>
|
|
746
746
|
</View>)}
|
|
747
747
|
|
|
748
|
-
|
|
748
|
+
|
|
749
749
|
{(isSearchFocused || search.length > 0) && (<ScrollView horizontal showsHorizontalScrollIndicator={false} style={{ marginBottom: 8, maxHeight: 28 }} contentContainerStyle={{
|
|
750
750
|
paddingHorizontal: 12,
|
|
751
751
|
flexDirection: 'row',
|
|
@@ -792,7 +792,7 @@ const NetworkTab = React.memo(() => {
|
|
|
792
792
|
})}
|
|
793
793
|
</ScrollView>)}
|
|
794
794
|
|
|
795
|
-
|
|
795
|
+
|
|
796
796
|
{(quickFilter !== 'all' ||
|
|
797
797
|
search.trim().length > 0 ||
|
|
798
798
|
statusFilters.size > 0 ||
|
|
@@ -918,7 +918,7 @@ const NetworkTab = React.memo(() => {
|
|
|
918
918
|
styles.listContent,
|
|
919
919
|
filteredLogs.length === 0 && { flexGrow: 1 },
|
|
920
920
|
]} keyboardShouldPersistTaps="handled"/>
|
|
921
|
-
|
|
921
|
+
|
|
922
922
|
<TouchableScale onPress={() => {
|
|
923
923
|
try {
|
|
924
924
|
apisListRef.current?.scrollToOffset({
|
|
@@ -34,7 +34,6 @@ export const NpmUpdateToast = () => {
|
|
|
34
34
|
useEffect(() => {
|
|
35
35
|
if (showUpdateToast && updateAvailable && latestNpmVersion && !dismissed) {
|
|
36
36
|
setVisible(true);
|
|
37
|
-
// Slide and fade in
|
|
38
37
|
Animated.parallel([
|
|
39
38
|
Animated.spring(translateYAnim, {
|
|
40
39
|
toValue: 0,
|
|
@@ -48,14 +47,12 @@ export const NpmUpdateToast = () => {
|
|
|
48
47
|
useNativeDriver: true,
|
|
49
48
|
}),
|
|
50
49
|
]).start();
|
|
51
|
-
// Progress bar countdown from 1 to 0
|
|
52
50
|
progressAnim.setValue(1);
|
|
53
51
|
Animated.timing(progressAnim, {
|
|
54
52
|
toValue: 0,
|
|
55
53
|
duration: TOAST_TIMEOUT_MS,
|
|
56
54
|
useNativeDriver: false,
|
|
57
55
|
}).start();
|
|
58
|
-
// Auto-hide after timeout
|
|
59
56
|
timerRef.current = setTimeout(() => {
|
|
60
57
|
handleDismiss();
|
|
61
58
|
}, TOAST_TIMEOUT_MS);
|
|
@@ -109,12 +106,12 @@ export const NpmUpdateToast = () => {
|
|
|
109
106
|
},
|
|
110
107
|
]}>
|
|
111
108
|
<View style={styles.contentRow}>
|
|
112
|
-
|
|
109
|
+
|
|
113
110
|
<View style={styles.npmIconContainer}>
|
|
114
111
|
<NpmIcon size={15} color="#CB3837"/>
|
|
115
112
|
</View>
|
|
116
113
|
|
|
117
|
-
|
|
114
|
+
|
|
118
115
|
<View style={styles.textContainer}>
|
|
119
116
|
<View style={styles.titleRow}>
|
|
120
117
|
<Text style={styles.titleText}>Update Available</Text>
|
|
@@ -127,7 +124,7 @@ export const NpmUpdateToast = () => {
|
|
|
127
124
|
</Text>
|
|
128
125
|
</View>
|
|
129
126
|
|
|
130
|
-
|
|
127
|
+
|
|
131
128
|
<TouchableOpacity style={styles.copyButton} onPress={handleCopyCommand} hitSlop={6} activeOpacity={0.75}>
|
|
132
129
|
{copied ? <CheckSvg size={11} color="#10B981"/> : <CopySvg size={11} color="#94A3B8"/>}
|
|
133
130
|
<Text style={[styles.copyButtonText, copied && { color: '#10B981' }]}>
|
|
@@ -135,19 +132,19 @@ export const NpmUpdateToast = () => {
|
|
|
135
132
|
</Text>
|
|
136
133
|
</TouchableOpacity>
|
|
137
134
|
|
|
138
|
-
|
|
135
|
+
|
|
139
136
|
<TouchableOpacity style={styles.actionButton} onPress={handleOpenNpm} activeOpacity={0.8}>
|
|
140
137
|
<Text style={styles.actionButtonText}>View</Text>
|
|
141
138
|
<ExternalLinkSvg size={10} color="#FFFFFF"/>
|
|
142
139
|
</TouchableOpacity>
|
|
143
140
|
|
|
144
|
-
|
|
141
|
+
|
|
145
142
|
<TouchableOpacity style={styles.closeButton} onPress={handleDismiss} hitSlop={8} activeOpacity={0.7}>
|
|
146
143
|
<CloseSvg size={12} color="#94A3B8"/>
|
|
147
144
|
</TouchableOpacity>
|
|
148
145
|
</View>
|
|
149
146
|
|
|
150
|
-
|
|
147
|
+
|
|
151
148
|
<View style={styles.progressBarTrack}>
|
|
152
149
|
<Animated.View style={[styles.progressBarFill, { width: progressWidth }]}/>
|
|
153
150
|
</View>
|