react-native-inapp-inspector 2.3.18 → 2.3.19
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/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +47 -0
- package/dist/commonjs/capture.d.ts +2 -0
- package/dist/commonjs/capture.js +3 -0
- package/dist/commonjs/components/EmptyState.d.ts +1 -0
- package/dist/commonjs/components/EmptyState.js +2 -2
- package/dist/commonjs/components/Inspector/FabLauncher.js +494 -39
- package/dist/commonjs/components/Inspector/InspectorHeader.js +45 -26
- package/dist/commonjs/components/Inspector/MainScreen.js +4 -3
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +418 -13
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +376 -88
- package/dist/commonjs/components/Inspector/NetworkDetail.js +49 -63
- package/dist/commonjs/components/Inspector/SettingsPanel.js +499 -119
- package/dist/commonjs/components/Inspector/TabBar.js +166 -4
- package/dist/commonjs/components/JsonViewer.js +4 -3
- package/dist/commonjs/components/NetworkIcons.d.ts +4 -0
- package/dist/commonjs/components/NetworkIcons.js +26 -1
- package/dist/commonjs/components/SegmentedTabs.js +1 -0
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/i18n/locales/en.json +20 -2
- package/dist/commonjs/index.js +45 -30
- package/dist/commonjs/native/NativeInspector.d.ts +3 -0
- package/dist/commonjs/native/NativeInspector.js +14 -1
- package/dist/commonjs/native/NativeNetworkInspector.d.ts +1 -0
- package/dist/commonjs/styles/AppColors.js +78 -78
- package/dist/commonjs/types/enums.d.ts +2 -0
- package/dist/commonjs/types/enums.js +2 -0
- package/dist/commonjs/types/interfaces.d.ts +5 -0
- package/dist/esm/capture.d.ts +2 -0
- package/dist/esm/capture.js +4 -1
- package/dist/esm/components/EmptyState.d.ts +1 -0
- package/dist/esm/components/EmptyState.js +2 -2
- package/dist/esm/components/Inspector/FabLauncher.js +462 -40
- package/dist/esm/components/Inspector/InspectorHeader.js +46 -27
- package/dist/esm/components/Inspector/MainScreen.js +4 -3
- package/dist/esm/components/Inspector/MediaGalleryTab.js +419 -14
- package/dist/esm/components/Inspector/MediaPreviewModal.js +379 -91
- package/dist/esm/components/Inspector/NetworkDetail.js +49 -63
- package/dist/esm/components/Inspector/SettingsPanel.js +500 -120
- package/dist/esm/components/Inspector/TabBar.js +135 -6
- package/dist/esm/components/JsonViewer.js +4 -3
- package/dist/esm/components/NetworkIcons.d.ts +4 -0
- package/dist/esm/components/NetworkIcons.js +21 -0
- package/dist/esm/components/SegmentedTabs.js +1 -0
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/i18n/locales/en.json +20 -2
- package/dist/esm/index.js +44 -29
- package/dist/esm/native/NativeInspector.d.ts +3 -0
- package/dist/esm/native/NativeInspector.js +12 -0
- package/dist/esm/native/NativeNetworkInspector.d.ts +1 -0
- package/dist/esm/styles/AppColors.js +78 -78
- package/dist/esm/types/enums.d.ts +2 -0
- package/dist/esm/types/enums.js +2 -0
- package/dist/esm/types/interfaces.d.ts +5 -0
- package/ios/NetworkInspectorModule.mm +241 -136
- package/package.json +1 -1
- package/react-native-inapp-inspector.podspec +1 -1
- package/src/capture.ts +8 -0
- package/src/components/EmptyState.tsx +3 -1
- package/src/components/Inspector/FabLauncher.tsx +562 -52
- package/src/components/Inspector/InspectorHeader.tsx +60 -22
- package/src/components/Inspector/MainScreen.tsx +3 -2
- package/src/components/Inspector/MediaGalleryTab.tsx +502 -28
- package/src/components/Inspector/MediaPreviewModal.tsx +465 -117
- package/src/components/Inspector/NetworkDetail.tsx +80 -97
- package/src/components/Inspector/SettingsPanel.tsx +708 -152
- package/src/components/Inspector/TabBar.tsx +174 -6
- package/src/components/JsonViewer.tsx +4 -2
- package/src/components/NetworkIcons.tsx +56 -0
- package/src/components/SegmentedTabs.tsx +1 -0
- package/src/constants/version.ts +1 -1
- package/src/i18n/locales/en.json +20 -4
- package/src/index.tsx +46 -31
- package/src/native/NativeInspector.ts +17 -0
- package/src/native/NativeNetworkInspector.ts +1 -0
- package/src/styles/AppColors.ts +80 -80
- package/src/types/enums.ts +2 -0
- package/src/types/interfaces.ts +5 -0
|
@@ -65,6 +65,7 @@ import {
|
|
|
65
65
|
InfoCircleIcon,
|
|
66
66
|
CopyIcon,
|
|
67
67
|
FilmIcon,
|
|
68
|
+
ScreencastIcon,
|
|
68
69
|
CameraIcon,
|
|
69
70
|
VideoCameraIcon,
|
|
70
71
|
MicrophoneIcon,
|
|
@@ -237,6 +238,14 @@ const SettingsPanel = () => {
|
|
|
237
238
|
icon: 'debugging',
|
|
238
239
|
desc: 'QR Code bridge for direct Debug APK download & Metro live-reload sync',
|
|
239
240
|
},
|
|
241
|
+
{
|
|
242
|
+
id: 11,
|
|
243
|
+
key: 'media',
|
|
244
|
+
label: 'Screencast',
|
|
245
|
+
category: 'diagnostic',
|
|
246
|
+
icon: 'media',
|
|
247
|
+
desc: 'Screenshots, video recordings, audio narration & animated GIFs',
|
|
248
|
+
},
|
|
240
249
|
] as const
|
|
241
250
|
).filter(m =>
|
|
242
251
|
m.key === 'debugging'
|
|
@@ -260,6 +269,7 @@ const SettingsPanel = () => {
|
|
|
260
269
|
bundle: Boolean(tabVisibility?.bundle),
|
|
261
270
|
performance: Boolean(tabVisibility?.performance),
|
|
262
271
|
debugging: Boolean(tabVisibility?.debugging),
|
|
272
|
+
media: Boolean(tabVisibility?.media ?? true),
|
|
263
273
|
}));
|
|
264
274
|
|
|
265
275
|
// Synchronize staged state with tabVisibility when tabVisibility updates
|
|
@@ -275,10 +285,10 @@ const SettingsPanel = () => {
|
|
|
275
285
|
bundle: Boolean(tabVisibility?.bundle),
|
|
276
286
|
performance: Boolean(tabVisibility?.performance),
|
|
277
287
|
debugging: Boolean(tabVisibility?.debugging),
|
|
288
|
+
media: Boolean(tabVisibility?.media ?? true),
|
|
278
289
|
});
|
|
279
290
|
}, [tabVisibility]);
|
|
280
291
|
|
|
281
|
-
|
|
282
292
|
const hasUnsavedChanges = useMemo(() => {
|
|
283
293
|
return allModules.some(
|
|
284
294
|
m =>
|
|
@@ -314,8 +324,8 @@ const SettingsPanel = () => {
|
|
|
314
324
|
bundle: Boolean(tabVisibility?.bundle),
|
|
315
325
|
performance: Boolean(tabVisibility?.performance),
|
|
316
326
|
debugging: Boolean(tabVisibility?.debugging),
|
|
327
|
+
media: Boolean(tabVisibility?.media ?? true),
|
|
317
328
|
});
|
|
318
|
-
|
|
319
329
|
},
|
|
320
330
|
},
|
|
321
331
|
{
|
|
@@ -325,8 +335,12 @@ const SettingsPanel = () => {
|
|
|
325
335
|
animateNextLayout();
|
|
326
336
|
allModules.forEach(m => {
|
|
327
337
|
if (m.key !== 'apis') {
|
|
328
|
-
const isStagedOn = Boolean(
|
|
329
|
-
|
|
338
|
+
const isStagedOn = Boolean(
|
|
339
|
+
stagedTabVisibility[m.key as ActiveTab],
|
|
340
|
+
);
|
|
341
|
+
const isCurrentOn = Boolean(
|
|
342
|
+
tabVisibility?.[m.key as ActiveTab],
|
|
343
|
+
);
|
|
330
344
|
if (isStagedOn !== isCurrentOn) {
|
|
331
345
|
toggleTabVisibility(m.key as ActiveTab);
|
|
332
346
|
}
|
|
@@ -577,7 +591,13 @@ const SettingsPanel = () => {
|
|
|
577
591
|
key: 'module' as const,
|
|
578
592
|
label: t('settings.modulesAndTools', 'Modules & Tools'),
|
|
579
593
|
Icon: LayersIcon,
|
|
580
|
-
badge: `${
|
|
594
|
+
badge: `${
|
|
595
|
+
allModules.filter(
|
|
596
|
+
m =>
|
|
597
|
+
stagedTabVisibility?.[m.key as ActiveTab] ||
|
|
598
|
+
m.key === 'apis',
|
|
599
|
+
).length
|
|
600
|
+
}/${allModules.length}`,
|
|
581
601
|
},
|
|
582
602
|
{
|
|
583
603
|
key: 'ui' as const,
|
|
@@ -591,7 +611,10 @@ const SettingsPanel = () => {
|
|
|
591
611
|
},
|
|
592
612
|
{
|
|
593
613
|
key: 'capture' as const,
|
|
594
|
-
label: t(
|
|
614
|
+
label: t(
|
|
615
|
+
'settings.screenVideoCapture',
|
|
616
|
+
'Screen & Video Capture',
|
|
617
|
+
),
|
|
595
618
|
Icon: CameraIcon,
|
|
596
619
|
},
|
|
597
620
|
{
|
|
@@ -634,9 +657,7 @@ const SettingsPanel = () => {
|
|
|
634
657
|
fontFamily: AppFonts.interBold,
|
|
635
658
|
fontSize: 12.5,
|
|
636
659
|
lineHeight: 16,
|
|
637
|
-
color: isActive
|
|
638
|
-
? AppColors.white
|
|
639
|
-
: AppColors.grayText,
|
|
660
|
+
color: isActive ? AppColors.white : AppColors.grayText,
|
|
640
661
|
}}>
|
|
641
662
|
{tab.label}
|
|
642
663
|
</Text>
|
|
@@ -654,9 +675,7 @@ const SettingsPanel = () => {
|
|
|
654
675
|
style={{
|
|
655
676
|
fontFamily: AppFonts.interBold,
|
|
656
677
|
fontSize: 9.5,
|
|
657
|
-
color: isActive
|
|
658
|
-
? AppColors.white
|
|
659
|
-
: AppColors.purple,
|
|
678
|
+
color: isActive ? AppColors.white : AppColors.purple,
|
|
660
679
|
}}>
|
|
661
680
|
{tab.badge}
|
|
662
681
|
</Text>
|
|
@@ -935,6 +954,16 @@ const SettingsPanel = () => {
|
|
|
935
954
|
size={16}
|
|
936
955
|
/>
|
|
937
956
|
)}
|
|
957
|
+
{moduleItem.icon === 'media' && (
|
|
958
|
+
<ScreencastIcon
|
|
959
|
+
color={
|
|
960
|
+
isChecked
|
|
961
|
+
? AppColors.purple
|
|
962
|
+
: AppColors.grayTextWeak
|
|
963
|
+
}
|
|
964
|
+
size={16}
|
|
965
|
+
/>
|
|
966
|
+
)}
|
|
938
967
|
</View>
|
|
939
968
|
|
|
940
969
|
{/* Titles & Status Pill */}
|
|
@@ -1642,7 +1671,9 @@ const SettingsPanel = () => {
|
|
|
1642
1671
|
color: AppColors.primaryBlack,
|
|
1643
1672
|
}}>
|
|
1644
1673
|
{allModules.find(m => m.key === defaultTab)
|
|
1645
|
-
? `#${allModules.find(m => m.key === defaultTab)?.id} ${
|
|
1674
|
+
? `#${allModules.find(m => m.key === defaultTab)?.id} ${
|
|
1675
|
+
allModules.find(m => m.key === defaultTab)?.label
|
|
1676
|
+
}`
|
|
1646
1677
|
: '#1 APIs (Network)'}
|
|
1647
1678
|
</Text>
|
|
1648
1679
|
<View
|
|
@@ -1933,7 +1964,8 @@ const SettingsPanel = () => {
|
|
|
1933
1964
|
color: AppColors.grayText,
|
|
1934
1965
|
marginTop: 1,
|
|
1935
1966
|
}}>
|
|
1936
|
-
Dynamically sets log limits according to available device
|
|
1967
|
+
Dynamically sets log limits according to available device
|
|
1968
|
+
memory
|
|
1937
1969
|
</Text>
|
|
1938
1970
|
</View>
|
|
1939
1971
|
</View>
|
|
@@ -2096,7 +2128,12 @@ const SettingsPanel = () => {
|
|
|
2096
2128
|
</View>
|
|
2097
2129
|
|
|
2098
2130
|
<View
|
|
2099
|
-
style={{
|
|
2131
|
+
style={{
|
|
2132
|
+
flexDirection: 'row',
|
|
2133
|
+
flexWrap: 'wrap',
|
|
2134
|
+
gap: 8,
|
|
2135
|
+
marginTop: 4,
|
|
2136
|
+
}}>
|
|
2100
2137
|
{[
|
|
2101
2138
|
{
|
|
2102
2139
|
label: 'APIs',
|
|
@@ -2217,7 +2254,8 @@ const SettingsPanel = () => {
|
|
|
2217
2254
|
color: AppColors.grayText,
|
|
2218
2255
|
marginTop: 1,
|
|
2219
2256
|
}}>
|
|
2220
|
-
Automatically prunes in-memory buffers by 50% when the OS
|
|
2257
|
+
Automatically prunes in-memory buffers by 50% when the OS
|
|
2258
|
+
signals low memory
|
|
2221
2259
|
</Text>
|
|
2222
2260
|
</View>
|
|
2223
2261
|
<View
|
|
@@ -2311,7 +2349,8 @@ const SettingsPanel = () => {
|
|
|
2311
2349
|
borderColor: AppColors.grayBorderSecondary,
|
|
2312
2350
|
gap: 12,
|
|
2313
2351
|
}}>
|
|
2314
|
-
<View
|
|
2352
|
+
<View
|
|
2353
|
+
style={{flexDirection: 'row', alignItems: 'center', gap: 10}}>
|
|
2315
2354
|
<View
|
|
2316
2355
|
style={{
|
|
2317
2356
|
width: 36,
|
|
@@ -2331,7 +2370,10 @@ const SettingsPanel = () => {
|
|
|
2331
2370
|
lineHeight: 18,
|
|
2332
2371
|
color: AppColors.primaryBlack,
|
|
2333
2372
|
}}>
|
|
2334
|
-
{t(
|
|
2373
|
+
{t(
|
|
2374
|
+
'settings.media.screenshotCardTitle',
|
|
2375
|
+
'Screenshot Capture Settings',
|
|
2376
|
+
)}
|
|
2335
2377
|
</Text>
|
|
2336
2378
|
<Text
|
|
2337
2379
|
style={{
|
|
@@ -2341,7 +2383,10 @@ const SettingsPanel = () => {
|
|
|
2341
2383
|
color: AppColors.grayText,
|
|
2342
2384
|
marginTop: 1,
|
|
2343
2385
|
}}>
|
|
2344
|
-
{t(
|
|
2386
|
+
{t(
|
|
2387
|
+
'settings.media.screenshotCardDesc',
|
|
2388
|
+
'Image encoding format, compression quality and overlay auto-hide',
|
|
2389
|
+
)}
|
|
2345
2390
|
</Text>
|
|
2346
2391
|
</View>
|
|
2347
2392
|
</View>
|
|
@@ -2349,7 +2394,10 @@ const SettingsPanel = () => {
|
|
|
2349
2394
|
{renderSettingRow({
|
|
2350
2395
|
icon: <ImageIcon color={AppColors.purple} size={16} />,
|
|
2351
2396
|
label: t('settings.media.imageFormat', 'Image Format'),
|
|
2352
|
-
description: t(
|
|
2397
|
+
description: t(
|
|
2398
|
+
'settings.media.imageFormatDesc',
|
|
2399
|
+
'Export formats (PNG lossless, JPEG lossy, WebP)',
|
|
2400
|
+
),
|
|
2353
2401
|
right: (
|
|
2354
2402
|
<View style={{flexDirection: 'row', gap: 4}}>
|
|
2355
2403
|
{['PNG', 'JPEG', 'WEBP'].map(fmt => (
|
|
@@ -2359,13 +2407,19 @@ const SettingsPanel = () => {
|
|
|
2359
2407
|
paddingHorizontal: 8,
|
|
2360
2408
|
paddingVertical: 4,
|
|
2361
2409
|
borderRadius: 6,
|
|
2362
|
-
backgroundColor:
|
|
2410
|
+
backgroundColor:
|
|
2411
|
+
fmt === 'PNG'
|
|
2412
|
+
? AppColors.purple
|
|
2413
|
+
: `${AppColors.purple}1A`,
|
|
2363
2414
|
}}>
|
|
2364
2415
|
<Text
|
|
2365
2416
|
style={{
|
|
2366
2417
|
fontFamily: AppFonts.interBold,
|
|
2367
2418
|
fontSize: 10,
|
|
2368
|
-
color:
|
|
2419
|
+
color:
|
|
2420
|
+
fmt === 'PNG'
|
|
2421
|
+
? AppColors.white
|
|
2422
|
+
: AppColors.purple,
|
|
2369
2423
|
}}>
|
|
2370
2424
|
{fmt}
|
|
2371
2425
|
</Text>
|
|
@@ -2377,8 +2431,14 @@ const SettingsPanel = () => {
|
|
|
2377
2431
|
|
|
2378
2432
|
{renderSettingRow({
|
|
2379
2433
|
icon: <EyeIcon color={AppColors.purple} size={16} />,
|
|
2380
|
-
label: t(
|
|
2381
|
-
|
|
2434
|
+
label: t(
|
|
2435
|
+
'settings.media.autoHide',
|
|
2436
|
+
'Auto-Hide Inspector During Capture',
|
|
2437
|
+
),
|
|
2438
|
+
description: t(
|
|
2439
|
+
'settings.media.autoHideDesc',
|
|
2440
|
+
'Temporarily hides the inspector overlay during screen capture',
|
|
2441
|
+
),
|
|
2382
2442
|
isLast: true,
|
|
2383
2443
|
right: (
|
|
2384
2444
|
<View
|
|
@@ -2411,7 +2471,8 @@ const SettingsPanel = () => {
|
|
|
2411
2471
|
borderColor: AppColors.grayBorderSecondary,
|
|
2412
2472
|
gap: 12,
|
|
2413
2473
|
}}>
|
|
2414
|
-
<View
|
|
2474
|
+
<View
|
|
2475
|
+
style={{flexDirection: 'row', alignItems: 'center', gap: 10}}>
|
|
2415
2476
|
<View
|
|
2416
2477
|
style={{
|
|
2417
2478
|
width: 36,
|
|
@@ -2431,7 +2492,10 @@ const SettingsPanel = () => {
|
|
|
2431
2492
|
lineHeight: 18,
|
|
2432
2493
|
color: AppColors.primaryBlack,
|
|
2433
2494
|
}}>
|
|
2434
|
-
{t(
|
|
2495
|
+
{t(
|
|
2496
|
+
'settings.media.videoCardTitle',
|
|
2497
|
+
'Video Recording & GIF Conversion',
|
|
2498
|
+
)}
|
|
2435
2499
|
</Text>
|
|
2436
2500
|
<Text
|
|
2437
2501
|
style={{
|
|
@@ -2441,7 +2505,10 @@ const SettingsPanel = () => {
|
|
|
2441
2505
|
color: AppColors.grayText,
|
|
2442
2506
|
marginTop: 1,
|
|
2443
2507
|
}}>
|
|
2444
|
-
{t(
|
|
2508
|
+
{t(
|
|
2509
|
+
'settings.media.videoCardDesc',
|
|
2510
|
+
'ReplayKit hardware encoding, frame capture fallback and GIF generation',
|
|
2511
|
+
)}
|
|
2445
2512
|
</Text>
|
|
2446
2513
|
</View>
|
|
2447
2514
|
</View>
|
|
@@ -2449,7 +2516,10 @@ const SettingsPanel = () => {
|
|
|
2449
2516
|
{renderSettingRow({
|
|
2450
2517
|
icon: <MicrophoneIcon color={AppColors.purple} size={16} />,
|
|
2451
2518
|
label: t('settings.media.audioMode', 'Audio Source'),
|
|
2452
|
-
description: t(
|
|
2519
|
+
description: t(
|
|
2520
|
+
'settings.media.audioModeDesc',
|
|
2521
|
+
'Record video with muted, app audio, or microphone commentary',
|
|
2522
|
+
),
|
|
2453
2523
|
right: (
|
|
2454
2524
|
<View style={{flexDirection: 'row', gap: 4}}>
|
|
2455
2525
|
{['Muted', 'App', 'Mic'].map((aud, i) => (
|
|
@@ -2459,7 +2529,10 @@ const SettingsPanel = () => {
|
|
|
2459
2529
|
paddingHorizontal: 7,
|
|
2460
2530
|
paddingVertical: 4,
|
|
2461
2531
|
borderRadius: 6,
|
|
2462
|
-
backgroundColor:
|
|
2532
|
+
backgroundColor:
|
|
2533
|
+
i === 0
|
|
2534
|
+
? AppColors.purple
|
|
2535
|
+
: `${AppColors.purple}1A`,
|
|
2463
2536
|
}}>
|
|
2464
2537
|
<Text
|
|
2465
2538
|
style={{
|
|
@@ -2477,8 +2550,14 @@ const SettingsPanel = () => {
|
|
|
2477
2550
|
|
|
2478
2551
|
{renderSettingRow({
|
|
2479
2552
|
icon: <FilmIcon color={AppColors.purple} size={16} />,
|
|
2480
|
-
label: t(
|
|
2481
|
-
|
|
2553
|
+
label: t(
|
|
2554
|
+
'settings.media.frameRate',
|
|
2555
|
+
'Recording Frame Rate (FPS)',
|
|
2556
|
+
),
|
|
2557
|
+
description: t(
|
|
2558
|
+
'settings.media.frameRateDesc',
|
|
2559
|
+
'Target video smoothness: 15, 24, 30, or 60 FPS',
|
|
2560
|
+
),
|
|
2482
2561
|
right: (
|
|
2483
2562
|
<View style={{flexDirection: 'row', gap: 4}}>
|
|
2484
2563
|
{['15', '24', '30', '60'].map(fps => (
|
|
@@ -2488,13 +2567,17 @@ const SettingsPanel = () => {
|
|
|
2488
2567
|
paddingHorizontal: 6,
|
|
2489
2568
|
paddingVertical: 4,
|
|
2490
2569
|
borderRadius: 6,
|
|
2491
|
-
backgroundColor:
|
|
2570
|
+
backgroundColor:
|
|
2571
|
+
fps === '24'
|
|
2572
|
+
? AppColors.purple
|
|
2573
|
+
: `${AppColors.purple}1A`,
|
|
2492
2574
|
}}>
|
|
2493
2575
|
<Text
|
|
2494
2576
|
style={{
|
|
2495
2577
|
fontFamily: AppFonts.interBold,
|
|
2496
2578
|
fontSize: 10,
|
|
2497
|
-
color:
|
|
2579
|
+
color:
|
|
2580
|
+
fps === '24' ? AppColors.white : AppColors.purple,
|
|
2498
2581
|
}}>
|
|
2499
2582
|
{fps}fps
|
|
2500
2583
|
</Text>
|
|
@@ -2507,7 +2590,10 @@ const SettingsPanel = () => {
|
|
|
2507
2590
|
{renderSettingRow({
|
|
2508
2591
|
icon: <GifIcon color={AppColors.purple} size={16} />,
|
|
2509
2592
|
label: t('settings.media.gifAutoOpt', 'Auto GIF Optimization'),
|
|
2510
|
-
description: t(
|
|
2593
|
+
description: t(
|
|
2594
|
+
'settings.media.gifAutoOptDesc',
|
|
2595
|
+
'Automatic palette reduction and frame skip for lightweight animated GIFs',
|
|
2596
|
+
),
|
|
2511
2597
|
isLast: true,
|
|
2512
2598
|
right: (
|
|
2513
2599
|
<View
|
|
@@ -2541,13 +2627,25 @@ const SettingsPanel = () => {
|
|
|
2541
2627
|
}}>
|
|
2542
2628
|
{renderSettingRow({
|
|
2543
2629
|
icon: <TrashIcon color={AppColors.errorColor} size={16} />,
|
|
2544
|
-
label: t(
|
|
2545
|
-
|
|
2630
|
+
label: t(
|
|
2631
|
+
'settings.media.purgeAll',
|
|
2632
|
+
'Purge Captured Media Cache',
|
|
2633
|
+
),
|
|
2634
|
+
description: t(
|
|
2635
|
+
'settings.media.purgeAllDesc',
|
|
2636
|
+
'Delete all local screenshots, screen recordings and converted GIFs',
|
|
2637
|
+
),
|
|
2546
2638
|
isLast: true,
|
|
2547
2639
|
onPress: () => {
|
|
2548
2640
|
Alert.alert(
|
|
2549
|
-
t(
|
|
2550
|
-
|
|
2641
|
+
t(
|
|
2642
|
+
'settings.media.purgeConfirmTitle',
|
|
2643
|
+
'Purge Media Storage?',
|
|
2644
|
+
),
|
|
2645
|
+
t(
|
|
2646
|
+
'settings.media.purgeConfirmMessage',
|
|
2647
|
+
'This will permanently delete all captured screenshots and videos from disk.',
|
|
2648
|
+
),
|
|
2551
2649
|
[
|
|
2552
2650
|
{text: t('common.cancel', 'Cancel'), style: 'cancel'},
|
|
2553
2651
|
{
|
|
@@ -2555,7 +2653,12 @@ const SettingsPanel = () => {
|
|
|
2555
2653
|
style: 'destructive',
|
|
2556
2654
|
onPress: async () => {
|
|
2557
2655
|
await ScreenCapture.clearAllMedia();
|
|
2558
|
-
showToast(
|
|
2656
|
+
showToast(
|
|
2657
|
+
t(
|
|
2658
|
+
'settings.media.purgedSuccess',
|
|
2659
|
+
'Media cache cleared successfully',
|
|
2660
|
+
),
|
|
2661
|
+
);
|
|
2559
2662
|
},
|
|
2560
2663
|
},
|
|
2561
2664
|
],
|
|
@@ -2724,7 +2827,9 @@ const SettingsPanel = () => {
|
|
|
2724
2827
|
lineHeight: 16,
|
|
2725
2828
|
color: AppColors.grayText,
|
|
2726
2829
|
}}>
|
|
2727
|
-
High-performance in-app debugging, network logging, console
|
|
2830
|
+
High-performance in-app debugging, network logging, console
|
|
2831
|
+
inspection, performance profiling, storage viewer & telemetry
|
|
2832
|
+
diagnostics for React Native.
|
|
2728
2833
|
</Text>
|
|
2729
2834
|
|
|
2730
2835
|
{updateAvailable && (
|
|
@@ -2975,38 +3080,67 @@ const SettingsPanel = () => {
|
|
|
2975
3080
|
package: {
|
|
2976
3081
|
name: 'react-native-inapp-inspector',
|
|
2977
3082
|
version: `v${LIB_VERSION}`,
|
|
2978
|
-
latestNpmVersion: latestNpmVersion
|
|
3083
|
+
latestNpmVersion: latestNpmVersion
|
|
3084
|
+
? `v${latestNpmVersion}`
|
|
3085
|
+
: 'Checking...',
|
|
2979
3086
|
license: 'MIT',
|
|
2980
|
-
repository:
|
|
3087
|
+
repository:
|
|
3088
|
+
'https://github.com/vengatmacuser/react-native-inapp-inspector',
|
|
2981
3089
|
},
|
|
2982
3090
|
hostApp: {
|
|
2983
3091
|
name: getAppName(),
|
|
2984
3092
|
bundleId: getBundleIdentifier(),
|
|
2985
3093
|
versionAndBuild: getAppVersionAndBuild().formatted,
|
|
2986
|
-
buildVariant: __DEV__
|
|
3094
|
+
buildVariant: __DEV__
|
|
3095
|
+
? 'Development (Debug)'
|
|
3096
|
+
: 'Production (Release)',
|
|
2987
3097
|
metroConnected: isLocalDebugEnvironment(),
|
|
2988
3098
|
},
|
|
2989
3099
|
runtime: {
|
|
2990
|
-
reactNativeVersion: rnVer
|
|
3100
|
+
reactNativeVersion: rnVer
|
|
3101
|
+
? `${rnVer.major}.${rnVer.minor}.${rnVer.patch}`
|
|
3102
|
+
: '0.74+',
|
|
2991
3103
|
reactVersion: React.version,
|
|
2992
|
-
jsEngine: Boolean((global as any)?.HermesInternal)
|
|
2993
|
-
|
|
2994
|
-
|
|
3104
|
+
jsEngine: Boolean((global as any)?.HermesInternal)
|
|
3105
|
+
? 'Hermes'
|
|
3106
|
+
: 'JavaScriptCore (JSC)',
|
|
3107
|
+
architecture: Boolean(
|
|
3108
|
+
(global as any)?.nativeFabricUIManager,
|
|
3109
|
+
)
|
|
3110
|
+
? 'Fabric (New Architecture)'
|
|
3111
|
+
: 'Paper (Legacy Bridge)',
|
|
3112
|
+
turboModules: Boolean(
|
|
3113
|
+
(global as any)?.__turboModuleProxy ||
|
|
3114
|
+
(global as any)?.TurboModuleRegistry,
|
|
3115
|
+
),
|
|
2995
3116
|
},
|
|
2996
3117
|
device: {
|
|
2997
3118
|
platform: Platform.OS,
|
|
2998
3119
|
osVersion: Platform.Version,
|
|
2999
|
-
deviceModel:
|
|
3000
|
-
|
|
3001
|
-
|
|
3120
|
+
deviceModel:
|
|
3121
|
+
(Platform.constants as any)?.Model || 'Unknown Device',
|
|
3122
|
+
windowDimensions: `${Math.round(win.width)}x${Math.round(
|
|
3123
|
+
win.height,
|
|
3124
|
+
)} pt`,
|
|
3125
|
+
screenDimensions: `${Math.round(scr.width)}x${Math.round(
|
|
3126
|
+
scr.height,
|
|
3127
|
+
)} pt`,
|
|
3002
3128
|
pixelRatio: PixelRatio.get(),
|
|
3003
3129
|
fontScale: PixelRatio.getFontScale(),
|
|
3004
|
-
timezone:
|
|
3005
|
-
|
|
3130
|
+
timezone:
|
|
3131
|
+
Intl.DateTimeFormat().resolvedOptions().timeZone ||
|
|
3132
|
+
'Unknown',
|
|
3133
|
+
locale:
|
|
3134
|
+
Intl.DateTimeFormat().resolvedOptions().locale || 'en',
|
|
3006
3135
|
},
|
|
3007
3136
|
storageAndCapabilities: {
|
|
3008
|
-
storageEngine: isPersistentStorageAvailable()
|
|
3009
|
-
|
|
3137
|
+
storageEngine: isPersistentStorageAvailable()
|
|
3138
|
+
? 'MMKV (Fast Native Storage)'
|
|
3139
|
+
: 'In-Memory State',
|
|
3140
|
+
hasNativeModule: Boolean(
|
|
3141
|
+
(global as any)?.NativeInspectorModule ||
|
|
3142
|
+
(global as any)?.__IN_APP_INSPECTOR_NATIVE__,
|
|
3143
|
+
),
|
|
3010
3144
|
reduxConnected: isReduxConnected(),
|
|
3011
3145
|
analyticsConnected: isAnalyticsConnected(),
|
|
3012
3146
|
},
|
|
@@ -3184,7 +3318,9 @@ const SettingsPanel = () => {
|
|
|
3184
3318
|
showToast('Copied npm install command!');
|
|
3185
3319
|
}}
|
|
3186
3320
|
style={{
|
|
3187
|
-
backgroundColor: updateAvailable
|
|
3321
|
+
backgroundColor: updateAvailable
|
|
3322
|
+
? AppColors.purple
|
|
3323
|
+
: `${AppColors.purple}18`,
|
|
3188
3324
|
paddingVertical: 7,
|
|
3189
3325
|
paddingHorizontal: 11,
|
|
3190
3326
|
borderRadius: 8,
|
|
@@ -3192,12 +3328,17 @@ const SettingsPanel = () => {
|
|
|
3192
3328
|
alignItems: 'center',
|
|
3193
3329
|
gap: 5,
|
|
3194
3330
|
}}>
|
|
3195
|
-
<CopyIcon
|
|
3331
|
+
<CopyIcon
|
|
3332
|
+
color={updateAvailable ? AppColors.white : AppColors.purple}
|
|
3333
|
+
size={12}
|
|
3334
|
+
/>
|
|
3196
3335
|
<Text
|
|
3197
3336
|
style={{
|
|
3198
3337
|
fontFamily: AppFonts.interBold,
|
|
3199
3338
|
fontSize: 11,
|
|
3200
|
-
color: updateAvailable
|
|
3339
|
+
color: updateAvailable
|
|
3340
|
+
? AppColors.white
|
|
3341
|
+
: AppColors.purple,
|
|
3201
3342
|
}}>
|
|
3202
3343
|
{updateAvailable ? 'Copy Upgrade' : 'Copy Install'}
|
|
3203
3344
|
</Text>
|
|
@@ -3227,68 +3368,143 @@ const SettingsPanel = () => {
|
|
|
3227
3368
|
</Text>
|
|
3228
3369
|
|
|
3229
3370
|
<View style={{gap: 8}}>
|
|
3230
|
-
<View
|
|
3231
|
-
|
|
3371
|
+
<View
|
|
3372
|
+
style={{
|
|
3373
|
+
flexDirection: 'row',
|
|
3374
|
+
justifyContent: 'space-between',
|
|
3375
|
+
alignItems: 'center',
|
|
3376
|
+
}}>
|
|
3377
|
+
<Text
|
|
3378
|
+
style={{
|
|
3379
|
+
fontFamily: AppFonts.interRegular,
|
|
3380
|
+
fontSize: 11.5,
|
|
3381
|
+
color: AppColors.grayText,
|
|
3382
|
+
}}>
|
|
3232
3383
|
Application Name
|
|
3233
3384
|
</Text>
|
|
3234
|
-
<Text
|
|
3385
|
+
<Text
|
|
3386
|
+
style={{
|
|
3387
|
+
fontFamily: AppFonts.interBold,
|
|
3388
|
+
fontSize: 11.5,
|
|
3389
|
+
color: AppColors.primaryBlack,
|
|
3390
|
+
}}>
|
|
3235
3391
|
{getAppName()}
|
|
3236
3392
|
</Text>
|
|
3237
3393
|
</View>
|
|
3238
3394
|
|
|
3239
|
-
<View
|
|
3240
|
-
|
|
3395
|
+
<View
|
|
3396
|
+
style={{
|
|
3397
|
+
flexDirection: 'row',
|
|
3398
|
+
justifyContent: 'space-between',
|
|
3399
|
+
alignItems: 'center',
|
|
3400
|
+
}}>
|
|
3401
|
+
<Text
|
|
3402
|
+
style={{
|
|
3403
|
+
fontFamily: AppFonts.interRegular,
|
|
3404
|
+
fontSize: 11.5,
|
|
3405
|
+
color: AppColors.grayText,
|
|
3406
|
+
}}>
|
|
3241
3407
|
Bundle ID / Package
|
|
3242
3408
|
</Text>
|
|
3243
|
-
<Text
|
|
3409
|
+
<Text
|
|
3410
|
+
style={{
|
|
3411
|
+
fontFamily: AppFonts.interRegular,
|
|
3412
|
+
fontSize: 11,
|
|
3413
|
+
color: AppColors.primaryBlack,
|
|
3414
|
+
}}>
|
|
3244
3415
|
{getBundleIdentifier()}
|
|
3245
3416
|
</Text>
|
|
3246
3417
|
</View>
|
|
3247
3418
|
|
|
3248
|
-
<View
|
|
3249
|
-
|
|
3419
|
+
<View
|
|
3420
|
+
style={{
|
|
3421
|
+
flexDirection: 'row',
|
|
3422
|
+
justifyContent: 'space-between',
|
|
3423
|
+
alignItems: 'center',
|
|
3424
|
+
}}>
|
|
3425
|
+
<Text
|
|
3426
|
+
style={{
|
|
3427
|
+
fontFamily: AppFonts.interRegular,
|
|
3428
|
+
fontSize: 11.5,
|
|
3429
|
+
color: AppColors.grayText,
|
|
3430
|
+
}}>
|
|
3250
3431
|
Version & Build Number
|
|
3251
3432
|
</Text>
|
|
3252
|
-
<Text
|
|
3433
|
+
<Text
|
|
3434
|
+
style={{
|
|
3435
|
+
fontFamily: AppFonts.interBold,
|
|
3436
|
+
fontSize: 11.5,
|
|
3437
|
+
color: AppColors.primaryBlack,
|
|
3438
|
+
}}>
|
|
3253
3439
|
{getAppVersionAndBuild().formatted}
|
|
3254
3440
|
</Text>
|
|
3255
3441
|
</View>
|
|
3256
3442
|
|
|
3257
|
-
<View
|
|
3258
|
-
|
|
3443
|
+
<View
|
|
3444
|
+
style={{
|
|
3445
|
+
flexDirection: 'row',
|
|
3446
|
+
justifyContent: 'space-between',
|
|
3447
|
+
alignItems: 'center',
|
|
3448
|
+
}}>
|
|
3449
|
+
<Text
|
|
3450
|
+
style={{
|
|
3451
|
+
fontFamily: AppFonts.interRegular,
|
|
3452
|
+
fontSize: 11.5,
|
|
3453
|
+
color: AppColors.grayText,
|
|
3454
|
+
}}>
|
|
3259
3455
|
Build Variant
|
|
3260
3456
|
</Text>
|
|
3261
3457
|
<View
|
|
3262
3458
|
style={{
|
|
3263
|
-
backgroundColor: __DEV__
|
|
3459
|
+
backgroundColor: __DEV__
|
|
3460
|
+
? `${AppColors.amber500}20`
|
|
3461
|
+
: `${AppColors.emerald500}20`,
|
|
3264
3462
|
paddingHorizontal: 6,
|
|
3265
3463
|
paddingVertical: 1.5,
|
|
3266
3464
|
borderRadius: 5,
|
|
3267
3465
|
borderWidth: 1,
|
|
3268
|
-
borderColor: __DEV__
|
|
3466
|
+
borderColor: __DEV__
|
|
3467
|
+
? `${AppColors.amber500}50`
|
|
3468
|
+
: `${AppColors.emerald500}50`,
|
|
3269
3469
|
}}>
|
|
3270
3470
|
<Text
|
|
3271
3471
|
style={{
|
|
3272
3472
|
fontFamily: AppFonts.interBold,
|
|
3273
3473
|
fontSize: 10,
|
|
3274
|
-
color: __DEV__
|
|
3474
|
+
color: __DEV__
|
|
3475
|
+
? AppColors.amber500
|
|
3476
|
+
: AppColors.emerald600,
|
|
3275
3477
|
}}>
|
|
3276
3478
|
{__DEV__ ? 'Development (Debug)' : 'Production (Release)'}
|
|
3277
3479
|
</Text>
|
|
3278
3480
|
</View>
|
|
3279
3481
|
</View>
|
|
3280
3482
|
|
|
3281
|
-
<View
|
|
3282
|
-
|
|
3483
|
+
<View
|
|
3484
|
+
style={{
|
|
3485
|
+
flexDirection: 'row',
|
|
3486
|
+
justifyContent: 'space-between',
|
|
3487
|
+
alignItems: 'center',
|
|
3488
|
+
}}>
|
|
3489
|
+
<Text
|
|
3490
|
+
style={{
|
|
3491
|
+
fontFamily: AppFonts.interRegular,
|
|
3492
|
+
fontSize: 11.5,
|
|
3493
|
+
color: AppColors.grayText,
|
|
3494
|
+
}}>
|
|
3283
3495
|
Metro Bundler Connection
|
|
3284
3496
|
</Text>
|
|
3285
3497
|
<Text
|
|
3286
3498
|
style={{
|
|
3287
3499
|
fontFamily: AppFonts.interBold,
|
|
3288
3500
|
fontSize: 11.5,
|
|
3289
|
-
color: isLocalDebugEnvironment()
|
|
3501
|
+
color: isLocalDebugEnvironment()
|
|
3502
|
+
? AppColors.emerald600
|
|
3503
|
+
: AppColors.grayText,
|
|
3290
3504
|
}}>
|
|
3291
|
-
{isLocalDebugEnvironment()
|
|
3505
|
+
{isLocalDebugEnvironment()
|
|
3506
|
+
? 'Connected (Hot Reload Active)'
|
|
3507
|
+
: 'Offline / Standalone'}
|
|
3292
3508
|
</Text>
|
|
3293
3509
|
</View>
|
|
3294
3510
|
</View>
|
|
@@ -3316,28 +3532,76 @@ const SettingsPanel = () => {
|
|
|
3316
3532
|
</Text>
|
|
3317
3533
|
|
|
3318
3534
|
<View style={{gap: 8}}>
|
|
3319
|
-
<View
|
|
3320
|
-
|
|
3535
|
+
<View
|
|
3536
|
+
style={{
|
|
3537
|
+
flexDirection: 'row',
|
|
3538
|
+
justifyContent: 'space-between',
|
|
3539
|
+
alignItems: 'center',
|
|
3540
|
+
}}>
|
|
3541
|
+
<Text
|
|
3542
|
+
style={{
|
|
3543
|
+
fontFamily: AppFonts.interRegular,
|
|
3544
|
+
fontSize: 11.5,
|
|
3545
|
+
color: AppColors.grayText,
|
|
3546
|
+
}}>
|
|
3321
3547
|
React Native Version
|
|
3322
3548
|
</Text>
|
|
3323
|
-
<Text
|
|
3324
|
-
|
|
3325
|
-
|
|
3549
|
+
<Text
|
|
3550
|
+
style={{
|
|
3551
|
+
fontFamily: AppFonts.interBold,
|
|
3552
|
+
fontSize: 11.5,
|
|
3553
|
+
color: AppColors.primaryBlack,
|
|
3554
|
+
}}>
|
|
3555
|
+
v
|
|
3556
|
+
{(Platform.constants as any)?.reactNativeVersion?.major !=
|
|
3557
|
+
null
|
|
3558
|
+
? `${
|
|
3559
|
+
(Platform.constants as any).reactNativeVersion.major
|
|
3560
|
+
}.${
|
|
3561
|
+
(Platform.constants as any).reactNativeVersion.minor
|
|
3562
|
+
}.${
|
|
3563
|
+
(Platform.constants as any).reactNativeVersion.patch
|
|
3564
|
+
}`
|
|
3326
3565
|
: '0.74+'}
|
|
3327
3566
|
</Text>
|
|
3328
3567
|
</View>
|
|
3329
3568
|
|
|
3330
|
-
<View
|
|
3331
|
-
|
|
3569
|
+
<View
|
|
3570
|
+
style={{
|
|
3571
|
+
flexDirection: 'row',
|
|
3572
|
+
justifyContent: 'space-between',
|
|
3573
|
+
alignItems: 'center',
|
|
3574
|
+
}}>
|
|
3575
|
+
<Text
|
|
3576
|
+
style={{
|
|
3577
|
+
fontFamily: AppFonts.interRegular,
|
|
3578
|
+
fontSize: 11.5,
|
|
3579
|
+
color: AppColors.grayText,
|
|
3580
|
+
}}>
|
|
3332
3581
|
React Core Version
|
|
3333
3582
|
</Text>
|
|
3334
|
-
<Text
|
|
3583
|
+
<Text
|
|
3584
|
+
style={{
|
|
3585
|
+
fontFamily: AppFonts.interBold,
|
|
3586
|
+
fontSize: 11.5,
|
|
3587
|
+
color: AppColors.primaryBlack,
|
|
3588
|
+
}}>
|
|
3335
3589
|
v{React.version}
|
|
3336
3590
|
</Text>
|
|
3337
3591
|
</View>
|
|
3338
3592
|
|
|
3339
|
-
<View
|
|
3340
|
-
|
|
3593
|
+
<View
|
|
3594
|
+
style={{
|
|
3595
|
+
flexDirection: 'row',
|
|
3596
|
+
justifyContent: 'space-between',
|
|
3597
|
+
alignItems: 'center',
|
|
3598
|
+
}}>
|
|
3599
|
+
<Text
|
|
3600
|
+
style={{
|
|
3601
|
+
fontFamily: AppFonts.interRegular,
|
|
3602
|
+
fontSize: 11.5,
|
|
3603
|
+
color: AppColors.grayText,
|
|
3604
|
+
}}>
|
|
3341
3605
|
JavaScript Engine
|
|
3342
3606
|
</Text>
|
|
3343
3607
|
<View
|
|
@@ -3349,27 +3613,69 @@ const SettingsPanel = () => {
|
|
|
3349
3613
|
borderWidth: 1,
|
|
3350
3614
|
borderColor: `${AppColors.purple}40`,
|
|
3351
3615
|
}}>
|
|
3352
|
-
<Text
|
|
3353
|
-
{
|
|
3616
|
+
<Text
|
|
3617
|
+
style={{
|
|
3618
|
+
fontFamily: AppFonts.interBold,
|
|
3619
|
+
fontSize: 10.5,
|
|
3620
|
+
color: AppColors.purple,
|
|
3621
|
+
}}>
|
|
3622
|
+
{Boolean((global as any)?.HermesInternal)
|
|
3623
|
+
? 'Hermes Engine (Active)'
|
|
3624
|
+
: 'JavaScriptCore (JSC)'}
|
|
3354
3625
|
</Text>
|
|
3355
3626
|
</View>
|
|
3356
3627
|
</View>
|
|
3357
3628
|
|
|
3358
|
-
<View
|
|
3359
|
-
|
|
3629
|
+
<View
|
|
3630
|
+
style={{
|
|
3631
|
+
flexDirection: 'row',
|
|
3632
|
+
justifyContent: 'space-between',
|
|
3633
|
+
alignItems: 'center',
|
|
3634
|
+
}}>
|
|
3635
|
+
<Text
|
|
3636
|
+
style={{
|
|
3637
|
+
fontFamily: AppFonts.interRegular,
|
|
3638
|
+
fontSize: 11.5,
|
|
3639
|
+
color: AppColors.grayText,
|
|
3640
|
+
}}>
|
|
3360
3641
|
Rendering Architecture
|
|
3361
3642
|
</Text>
|
|
3362
|
-
<Text
|
|
3363
|
-
{
|
|
3643
|
+
<Text
|
|
3644
|
+
style={{
|
|
3645
|
+
fontFamily: AppFonts.interBold,
|
|
3646
|
+
fontSize: 11.5,
|
|
3647
|
+
color: AppColors.primaryBlack,
|
|
3648
|
+
}}>
|
|
3649
|
+
{Boolean((global as any)?.nativeFabricUIManager)
|
|
3650
|
+
? 'Fabric (New Architecture)'
|
|
3651
|
+
: 'Paper (Legacy Bridge)'}
|
|
3364
3652
|
</Text>
|
|
3365
3653
|
</View>
|
|
3366
3654
|
|
|
3367
|
-
<View
|
|
3368
|
-
|
|
3655
|
+
<View
|
|
3656
|
+
style={{
|
|
3657
|
+
flexDirection: 'row',
|
|
3658
|
+
justifyContent: 'space-between',
|
|
3659
|
+
alignItems: 'center',
|
|
3660
|
+
}}>
|
|
3661
|
+
<Text
|
|
3662
|
+
style={{
|
|
3663
|
+
fontFamily: AppFonts.interRegular,
|
|
3664
|
+
fontSize: 11.5,
|
|
3665
|
+
color: AppColors.grayText,
|
|
3666
|
+
}}>
|
|
3369
3667
|
TurboModules Support
|
|
3370
3668
|
</Text>
|
|
3371
|
-
<Text
|
|
3372
|
-
{
|
|
3669
|
+
<Text
|
|
3670
|
+
style={{
|
|
3671
|
+
fontFamily: AppFonts.interBold,
|
|
3672
|
+
fontSize: 11.5,
|
|
3673
|
+
color: AppColors.primaryBlack,
|
|
3674
|
+
}}>
|
|
3675
|
+
{Boolean(
|
|
3676
|
+
(global as any)?.__turboModuleProxy ||
|
|
3677
|
+
(global as any)?.TurboModuleRegistry,
|
|
3678
|
+
)
|
|
3373
3679
|
? 'Enabled (C++ JSI)'
|
|
3374
3680
|
: 'Standard Bridge'}
|
|
3375
3681
|
</Text>
|
|
@@ -3399,59 +3705,171 @@ const SettingsPanel = () => {
|
|
|
3399
3705
|
</Text>
|
|
3400
3706
|
|
|
3401
3707
|
<View style={{gap: 8}}>
|
|
3402
|
-
<View
|
|
3403
|
-
|
|
3708
|
+
<View
|
|
3709
|
+
style={{
|
|
3710
|
+
flexDirection: 'row',
|
|
3711
|
+
justifyContent: 'space-between',
|
|
3712
|
+
alignItems: 'center',
|
|
3713
|
+
}}>
|
|
3714
|
+
<Text
|
|
3715
|
+
style={{
|
|
3716
|
+
fontFamily: AppFonts.interRegular,
|
|
3717
|
+
fontSize: 11.5,
|
|
3718
|
+
color: AppColors.grayText,
|
|
3719
|
+
}}>
|
|
3404
3720
|
Operating System
|
|
3405
3721
|
</Text>
|
|
3406
|
-
<Text
|
|
3407
|
-
{
|
|
3722
|
+
<Text
|
|
3723
|
+
style={{
|
|
3724
|
+
fontFamily: AppFonts.interBold,
|
|
3725
|
+
fontSize: 11.5,
|
|
3726
|
+
color: AppColors.primaryBlack,
|
|
3727
|
+
}}>
|
|
3728
|
+
{Platform.OS === 'ios'
|
|
3729
|
+
? 'Apple iOS'
|
|
3730
|
+
: Platform.OS === 'android'
|
|
3731
|
+
? 'Google Android'
|
|
3732
|
+
: Platform.OS}{' '}
|
|
3408
3733
|
{Platform.Version}
|
|
3409
3734
|
</Text>
|
|
3410
3735
|
</View>
|
|
3411
3736
|
|
|
3412
|
-
<View
|
|
3413
|
-
|
|
3737
|
+
<View
|
|
3738
|
+
style={{
|
|
3739
|
+
flexDirection: 'row',
|
|
3740
|
+
justifyContent: 'space-between',
|
|
3741
|
+
alignItems: 'center',
|
|
3742
|
+
}}>
|
|
3743
|
+
<Text
|
|
3744
|
+
style={{
|
|
3745
|
+
fontFamily: AppFonts.interRegular,
|
|
3746
|
+
fontSize: 11.5,
|
|
3747
|
+
color: AppColors.grayText,
|
|
3748
|
+
}}>
|
|
3414
3749
|
Device Hardware Model
|
|
3415
3750
|
</Text>
|
|
3416
|
-
<Text
|
|
3751
|
+
<Text
|
|
3752
|
+
style={{
|
|
3753
|
+
fontFamily: AppFonts.interBold,
|
|
3754
|
+
fontSize: 11.5,
|
|
3755
|
+
color: AppColors.primaryBlack,
|
|
3756
|
+
}}>
|
|
3417
3757
|
{(Platform.constants as any)?.Model ||
|
|
3418
|
-
(Platform.OS === 'ios'
|
|
3758
|
+
(Platform.OS === 'ios'
|
|
3759
|
+
? 'Apple Device'
|
|
3760
|
+
: 'Android Device')}
|
|
3419
3761
|
</Text>
|
|
3420
3762
|
</View>
|
|
3421
3763
|
|
|
3422
|
-
<View
|
|
3423
|
-
|
|
3764
|
+
<View
|
|
3765
|
+
style={{
|
|
3766
|
+
flexDirection: 'row',
|
|
3767
|
+
justifyContent: 'space-between',
|
|
3768
|
+
alignItems: 'center',
|
|
3769
|
+
}}>
|
|
3770
|
+
<Text
|
|
3771
|
+
style={{
|
|
3772
|
+
fontFamily: AppFonts.interRegular,
|
|
3773
|
+
fontSize: 11.5,
|
|
3774
|
+
color: AppColors.grayText,
|
|
3775
|
+
}}>
|
|
3424
3776
|
Window Viewport (Points)
|
|
3425
3777
|
</Text>
|
|
3426
|
-
<Text
|
|
3427
|
-
{
|
|
3778
|
+
<Text
|
|
3779
|
+
style={{
|
|
3780
|
+
fontFamily: AppFonts.interBold,
|
|
3781
|
+
fontSize: 11.5,
|
|
3782
|
+
color: AppColors.primaryBlack,
|
|
3783
|
+
}}>
|
|
3784
|
+
{Math.round(Dimensions.get('window').width)} ×{' '}
|
|
3785
|
+
{Math.round(Dimensions.get('window').height)} pt
|
|
3428
3786
|
</Text>
|
|
3429
3787
|
</View>
|
|
3430
3788
|
|
|
3431
|
-
<View
|
|
3432
|
-
|
|
3789
|
+
<View
|
|
3790
|
+
style={{
|
|
3791
|
+
flexDirection: 'row',
|
|
3792
|
+
justifyContent: 'space-between',
|
|
3793
|
+
alignItems: 'center',
|
|
3794
|
+
}}>
|
|
3795
|
+
<Text
|
|
3796
|
+
style={{
|
|
3797
|
+
fontFamily: AppFonts.interRegular,
|
|
3798
|
+
fontSize: 11.5,
|
|
3799
|
+
color: AppColors.grayText,
|
|
3800
|
+
}}>
|
|
3433
3801
|
Native Physical Resolution
|
|
3434
3802
|
</Text>
|
|
3435
|
-
<Text
|
|
3436
|
-
{
|
|
3803
|
+
<Text
|
|
3804
|
+
style={{
|
|
3805
|
+
fontFamily: AppFonts.interBold,
|
|
3806
|
+
fontSize: 11.5,
|
|
3807
|
+
color: AppColors.primaryBlack,
|
|
3808
|
+
}}>
|
|
3809
|
+
{Math.round(
|
|
3810
|
+
Dimensions.get('screen').width * PixelRatio.get(),
|
|
3811
|
+
)}{' '}
|
|
3812
|
+
×{' '}
|
|
3813
|
+
{Math.round(
|
|
3814
|
+
Dimensions.get('screen').height * PixelRatio.get(),
|
|
3815
|
+
)}{' '}
|
|
3816
|
+
px
|
|
3437
3817
|
</Text>
|
|
3438
3818
|
</View>
|
|
3439
3819
|
|
|
3440
|
-
<View
|
|
3441
|
-
|
|
3820
|
+
<View
|
|
3821
|
+
style={{
|
|
3822
|
+
flexDirection: 'row',
|
|
3823
|
+
justifyContent: 'space-between',
|
|
3824
|
+
alignItems: 'center',
|
|
3825
|
+
}}>
|
|
3826
|
+
<Text
|
|
3827
|
+
style={{
|
|
3828
|
+
fontFamily: AppFonts.interRegular,
|
|
3829
|
+
fontSize: 11.5,
|
|
3830
|
+
color: AppColors.grayText,
|
|
3831
|
+
}}>
|
|
3442
3832
|
Pixel Density & Font Scale
|
|
3443
3833
|
</Text>
|
|
3444
|
-
<Text
|
|
3445
|
-
{
|
|
3834
|
+
<Text
|
|
3835
|
+
style={{
|
|
3836
|
+
fontFamily: AppFonts.interBold,
|
|
3837
|
+
fontSize: 11.5,
|
|
3838
|
+
color: AppColors.primaryBlack,
|
|
3839
|
+
}}>
|
|
3840
|
+
{PixelRatio.get().toFixed(1)}x (
|
|
3841
|
+
{PixelRatio.get() >= 3
|
|
3842
|
+
? '@3x'
|
|
3843
|
+
: PixelRatio.get() >= 2
|
|
3844
|
+
? '@2x'
|
|
3845
|
+
: '@1x'}
|
|
3846
|
+
) • Font: {PixelRatio.getFontScale().toFixed(2)}x
|
|
3446
3847
|
</Text>
|
|
3447
3848
|
</View>
|
|
3448
3849
|
|
|
3449
|
-
<View
|
|
3450
|
-
|
|
3850
|
+
<View
|
|
3851
|
+
style={{
|
|
3852
|
+
flexDirection: 'row',
|
|
3853
|
+
justifyContent: 'space-between',
|
|
3854
|
+
alignItems: 'center',
|
|
3855
|
+
}}>
|
|
3856
|
+
<Text
|
|
3857
|
+
style={{
|
|
3858
|
+
fontFamily: AppFonts.interRegular,
|
|
3859
|
+
fontSize: 11.5,
|
|
3860
|
+
color: AppColors.grayText,
|
|
3861
|
+
}}>
|
|
3451
3862
|
Timezone & Locale
|
|
3452
3863
|
</Text>
|
|
3453
|
-
<Text
|
|
3454
|
-
{
|
|
3864
|
+
<Text
|
|
3865
|
+
style={{
|
|
3866
|
+
fontFamily: AppFonts.interBold,
|
|
3867
|
+
fontSize: 11.5,
|
|
3868
|
+
color: AppColors.primaryBlack,
|
|
3869
|
+
}}>
|
|
3870
|
+
{Intl.DateTimeFormat().resolvedOptions().timeZone ||
|
|
3871
|
+
'System'}{' '}
|
|
3872
|
+
({Intl.DateTimeFormat().resolvedOptions().locale || 'en'})
|
|
3455
3873
|
</Text>
|
|
3456
3874
|
</View>
|
|
3457
3875
|
</View>
|
|
@@ -3479,76 +3897,170 @@ const SettingsPanel = () => {
|
|
|
3479
3897
|
</Text>
|
|
3480
3898
|
|
|
3481
3899
|
<View style={{gap: 8}}>
|
|
3482
|
-
<View
|
|
3483
|
-
|
|
3900
|
+
<View
|
|
3901
|
+
style={{
|
|
3902
|
+
flexDirection: 'row',
|
|
3903
|
+
justifyContent: 'space-between',
|
|
3904
|
+
alignItems: 'center',
|
|
3905
|
+
}}>
|
|
3906
|
+
<Text
|
|
3907
|
+
style={{
|
|
3908
|
+
fontFamily: AppFonts.interRegular,
|
|
3909
|
+
fontSize: 11.5,
|
|
3910
|
+
color: AppColors.grayText,
|
|
3911
|
+
}}>
|
|
3484
3912
|
Storage Persistence Engine
|
|
3485
3913
|
</Text>
|
|
3486
3914
|
<View
|
|
3487
3915
|
style={{
|
|
3488
|
-
backgroundColor: isPersistentStorageAvailable()
|
|
3916
|
+
backgroundColor: isPersistentStorageAvailable()
|
|
3917
|
+
? `${AppColors.emerald500}18`
|
|
3918
|
+
: `${AppColors.amber500}18`,
|
|
3489
3919
|
paddingHorizontal: 6,
|
|
3490
3920
|
paddingVertical: 1.5,
|
|
3491
3921
|
borderRadius: 5,
|
|
3492
3922
|
borderWidth: 1,
|
|
3493
|
-
borderColor: isPersistentStorageAvailable()
|
|
3923
|
+
borderColor: isPersistentStorageAvailable()
|
|
3924
|
+
? `${AppColors.emerald500}50`
|
|
3925
|
+
: `${AppColors.amber500}50`,
|
|
3494
3926
|
}}>
|
|
3495
3927
|
<Text
|
|
3496
3928
|
style={{
|
|
3497
3929
|
fontFamily: AppFonts.interBold,
|
|
3498
3930
|
fontSize: 10.5,
|
|
3499
|
-
color: isPersistentStorageAvailable()
|
|
3931
|
+
color: isPersistentStorageAvailable()
|
|
3932
|
+
? AppColors.emerald600
|
|
3933
|
+
: AppColors.amber500,
|
|
3500
3934
|
}}>
|
|
3501
|
-
{isPersistentStorageAvailable()
|
|
3935
|
+
{isPersistentStorageAvailable()
|
|
3936
|
+
? 'MMKV Fast Native Storage'
|
|
3937
|
+
: 'In-Memory State'}
|
|
3502
3938
|
</Text>
|
|
3503
3939
|
</View>
|
|
3504
3940
|
</View>
|
|
3505
3941
|
|
|
3506
|
-
<View
|
|
3507
|
-
|
|
3942
|
+
<View
|
|
3943
|
+
style={{
|
|
3944
|
+
flexDirection: 'row',
|
|
3945
|
+
justifyContent: 'space-between',
|
|
3946
|
+
alignItems: 'center',
|
|
3947
|
+
}}>
|
|
3948
|
+
<Text
|
|
3949
|
+
style={{
|
|
3950
|
+
fontFamily: AppFonts.interRegular,
|
|
3951
|
+
fontSize: 11.5,
|
|
3952
|
+
color: AppColors.grayText,
|
|
3953
|
+
}}>
|
|
3508
3954
|
Native Module Status
|
|
3509
3955
|
</Text>
|
|
3510
3956
|
<Text
|
|
3511
3957
|
style={{
|
|
3512
3958
|
fontFamily: AppFonts.interBold,
|
|
3513
3959
|
fontSize: 11.5,
|
|
3514
|
-
color: Boolean((global as any)?.NativeInspectorModule)
|
|
3960
|
+
color: Boolean((global as any)?.NativeInspectorModule)
|
|
3961
|
+
? AppColors.emerald600
|
|
3962
|
+
: AppColors.grayText,
|
|
3515
3963
|
}}>
|
|
3516
|
-
{Boolean((global as any)?.NativeInspectorModule)
|
|
3964
|
+
{Boolean((global as any)?.NativeInspectorModule)
|
|
3965
|
+
? 'Linked & Active'
|
|
3966
|
+
: 'JavaScript Only'}
|
|
3517
3967
|
</Text>
|
|
3518
3968
|
</View>
|
|
3519
3969
|
|
|
3520
|
-
<View
|
|
3521
|
-
|
|
3970
|
+
<View
|
|
3971
|
+
style={{
|
|
3972
|
+
flexDirection: 'row',
|
|
3973
|
+
justifyContent: 'space-between',
|
|
3974
|
+
alignItems: 'center',
|
|
3975
|
+
}}>
|
|
3976
|
+
<Text
|
|
3977
|
+
style={{
|
|
3978
|
+
fontFamily: AppFonts.interRegular,
|
|
3979
|
+
fontSize: 11.5,
|
|
3980
|
+
color: AppColors.grayText,
|
|
3981
|
+
}}>
|
|
3522
3982
|
Network Logger Interceptor
|
|
3523
3983
|
</Text>
|
|
3524
|
-
<Text
|
|
3984
|
+
<Text
|
|
3985
|
+
style={{
|
|
3986
|
+
fontFamily: AppFonts.interBold,
|
|
3987
|
+
fontSize: 11.5,
|
|
3988
|
+
color: AppColors.emerald600,
|
|
3989
|
+
}}>
|
|
3525
3990
|
Active (XMLHttpRequest & Fetch Hooked)
|
|
3526
3991
|
</Text>
|
|
3527
3992
|
</View>
|
|
3528
3993
|
|
|
3529
|
-
<View
|
|
3530
|
-
|
|
3994
|
+
<View
|
|
3995
|
+
style={{
|
|
3996
|
+
flexDirection: 'row',
|
|
3997
|
+
justifyContent: 'space-between',
|
|
3998
|
+
alignItems: 'center',
|
|
3999
|
+
}}>
|
|
4000
|
+
<Text
|
|
4001
|
+
style={{
|
|
4002
|
+
fontFamily: AppFonts.interRegular,
|
|
4003
|
+
fontSize: 11.5,
|
|
4004
|
+
color: AppColors.grayText,
|
|
4005
|
+
}}>
|
|
3531
4006
|
Redux & Analytics Watchers
|
|
3532
4007
|
</Text>
|
|
3533
|
-
<Text
|
|
3534
|
-
|
|
4008
|
+
<Text
|
|
4009
|
+
style={{
|
|
4010
|
+
fontFamily: AppFonts.interBold,
|
|
4011
|
+
fontSize: 11.5,
|
|
4012
|
+
color: AppColors.primaryBlack,
|
|
4013
|
+
}}>
|
|
4014
|
+
Redux: {isReduxConnected() ? 'Connected' : 'Listening'} •
|
|
4015
|
+
Analytics:{' '}
|
|
4016
|
+
{isAnalyticsConnected() ? 'Connected' : 'Listening'}
|
|
3535
4017
|
</Text>
|
|
3536
4018
|
</View>
|
|
3537
4019
|
|
|
3538
|
-
<View
|
|
3539
|
-
|
|
4020
|
+
<View
|
|
4021
|
+
style={{
|
|
4022
|
+
flexDirection: 'row',
|
|
4023
|
+
justifyContent: 'space-between',
|
|
4024
|
+
alignItems: 'center',
|
|
4025
|
+
}}>
|
|
4026
|
+
<Text
|
|
4027
|
+
style={{
|
|
4028
|
+
fontFamily: AppFonts.interRegular,
|
|
4029
|
+
fontSize: 11.5,
|
|
4030
|
+
color: AppColors.grayText,
|
|
4031
|
+
}}>
|
|
3540
4032
|
Crash & Exception Boundary
|
|
3541
4033
|
</Text>
|
|
3542
|
-
<Text
|
|
4034
|
+
<Text
|
|
4035
|
+
style={{
|
|
4036
|
+
fontFamily: AppFonts.interBold,
|
|
4037
|
+
fontSize: 11.5,
|
|
4038
|
+
color: AppColors.emerald600,
|
|
4039
|
+
}}>
|
|
3543
4040
|
Global JS Exception Handler Active
|
|
3544
4041
|
</Text>
|
|
3545
4042
|
</View>
|
|
3546
4043
|
|
|
3547
|
-
<View
|
|
3548
|
-
|
|
4044
|
+
<View
|
|
4045
|
+
style={{
|
|
4046
|
+
flexDirection: 'row',
|
|
4047
|
+
justifyContent: 'space-between',
|
|
4048
|
+
alignItems: 'center',
|
|
4049
|
+
}}>
|
|
4050
|
+
<Text
|
|
4051
|
+
style={{
|
|
4052
|
+
fontFamily: AppFonts.interRegular,
|
|
4053
|
+
fontSize: 11.5,
|
|
4054
|
+
color: AppColors.grayText,
|
|
4055
|
+
}}>
|
|
3549
4056
|
Memory Management
|
|
3550
4057
|
</Text>
|
|
3551
|
-
<Text
|
|
4058
|
+
<Text
|
|
4059
|
+
style={{
|
|
4060
|
+
fontFamily: AppFonts.interBold,
|
|
4061
|
+
fontSize: 11.5,
|
|
4062
|
+
color: AppColors.emerald600,
|
|
4063
|
+
}}>
|
|
3552
4064
|
Dynamic Auto RAM Tiering Active
|
|
3553
4065
|
</Text>
|
|
3554
4066
|
</View>
|
|
@@ -3576,29 +4088,74 @@ const SettingsPanel = () => {
|
|
|
3576
4088
|
LICENSE & CREDITS
|
|
3577
4089
|
</Text>
|
|
3578
4090
|
|
|
3579
|
-
<View
|
|
3580
|
-
|
|
4091
|
+
<View
|
|
4092
|
+
style={{
|
|
4093
|
+
flexDirection: 'row',
|
|
4094
|
+
justifyContent: 'space-between',
|
|
4095
|
+
alignItems: 'center',
|
|
4096
|
+
}}>
|
|
4097
|
+
<Text
|
|
4098
|
+
style={{
|
|
4099
|
+
fontFamily: AppFonts.interRegular,
|
|
4100
|
+
fontSize: 11.5,
|
|
4101
|
+
color: AppColors.grayText,
|
|
4102
|
+
}}>
|
|
3581
4103
|
License
|
|
3582
4104
|
</Text>
|
|
3583
|
-
<Text
|
|
4105
|
+
<Text
|
|
4106
|
+
style={{
|
|
4107
|
+
fontFamily: AppFonts.interBold,
|
|
4108
|
+
fontSize: 11.5,
|
|
4109
|
+
color: AppColors.emerald600,
|
|
4110
|
+
}}>
|
|
3584
4111
|
MIT Permissive Open Source
|
|
3585
4112
|
</Text>
|
|
3586
4113
|
</View>
|
|
3587
4114
|
|
|
3588
|
-
<View
|
|
3589
|
-
|
|
4115
|
+
<View
|
|
4116
|
+
style={{
|
|
4117
|
+
flexDirection: 'row',
|
|
4118
|
+
justifyContent: 'space-between',
|
|
4119
|
+
alignItems: 'center',
|
|
4120
|
+
}}>
|
|
4121
|
+
<Text
|
|
4122
|
+
style={{
|
|
4123
|
+
fontFamily: AppFonts.interRegular,
|
|
4124
|
+
fontSize: 11.5,
|
|
4125
|
+
color: AppColors.grayText,
|
|
4126
|
+
}}>
|
|
3590
4127
|
Created & Maintained By
|
|
3591
4128
|
</Text>
|
|
3592
|
-
<Text
|
|
4129
|
+
<Text
|
|
4130
|
+
style={{
|
|
4131
|
+
fontFamily: AppFonts.interBold,
|
|
4132
|
+
fontSize: 11.5,
|
|
4133
|
+
color: AppColors.primaryBlack,
|
|
4134
|
+
}}>
|
|
3593
4135
|
Vengateswaran
|
|
3594
4136
|
</Text>
|
|
3595
4137
|
</View>
|
|
3596
4138
|
|
|
3597
|
-
<View
|
|
3598
|
-
|
|
4139
|
+
<View
|
|
4140
|
+
style={{
|
|
4141
|
+
flexDirection: 'row',
|
|
4142
|
+
justifyContent: 'space-between',
|
|
4143
|
+
alignItems: 'center',
|
|
4144
|
+
}}>
|
|
4145
|
+
<Text
|
|
4146
|
+
style={{
|
|
4147
|
+
fontFamily: AppFonts.interRegular,
|
|
4148
|
+
fontSize: 11.5,
|
|
4149
|
+
color: AppColors.grayText,
|
|
4150
|
+
}}>
|
|
3599
4151
|
Repository
|
|
3600
4152
|
</Text>
|
|
3601
|
-
<Text
|
|
4153
|
+
<Text
|
|
4154
|
+
style={{
|
|
4155
|
+
fontFamily: AppFonts.interRegular,
|
|
4156
|
+
fontSize: 11,
|
|
4157
|
+
color: AppColors.purple,
|
|
4158
|
+
}}>
|
|
3602
4159
|
github.com/vengatmacuser/react-native-inapp-inspector
|
|
3603
4160
|
</Text>
|
|
3604
4161
|
</View>
|
|
@@ -4523,7 +5080,6 @@ const SettingsPanel = () => {
|
|
|
4523
5080
|
);
|
|
4524
5081
|
}
|
|
4525
5082
|
|
|
4526
|
-
|
|
4527
5083
|
const subPageAnim = useRef(new Animated.Value(0)).current;
|
|
4528
5084
|
useEffect(() => {
|
|
4529
5085
|
if (settingsPage !== 'main') {
|