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.
Files changed (79) hide show
  1. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +47 -0
  2. package/dist/commonjs/capture.d.ts +2 -0
  3. package/dist/commonjs/capture.js +3 -0
  4. package/dist/commonjs/components/EmptyState.d.ts +1 -0
  5. package/dist/commonjs/components/EmptyState.js +2 -2
  6. package/dist/commonjs/components/Inspector/FabLauncher.js +494 -39
  7. package/dist/commonjs/components/Inspector/InspectorHeader.js +45 -26
  8. package/dist/commonjs/components/Inspector/MainScreen.js +4 -3
  9. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +418 -13
  10. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +376 -88
  11. package/dist/commonjs/components/Inspector/NetworkDetail.js +49 -63
  12. package/dist/commonjs/components/Inspector/SettingsPanel.js +499 -119
  13. package/dist/commonjs/components/Inspector/TabBar.js +166 -4
  14. package/dist/commonjs/components/JsonViewer.js +4 -3
  15. package/dist/commonjs/components/NetworkIcons.d.ts +4 -0
  16. package/dist/commonjs/components/NetworkIcons.js +26 -1
  17. package/dist/commonjs/components/SegmentedTabs.js +1 -0
  18. package/dist/commonjs/constants/version.d.ts +1 -1
  19. package/dist/commonjs/constants/version.js +1 -1
  20. package/dist/commonjs/i18n/locales/en.json +20 -2
  21. package/dist/commonjs/index.js +45 -30
  22. package/dist/commonjs/native/NativeInspector.d.ts +3 -0
  23. package/dist/commonjs/native/NativeInspector.js +14 -1
  24. package/dist/commonjs/native/NativeNetworkInspector.d.ts +1 -0
  25. package/dist/commonjs/styles/AppColors.js +78 -78
  26. package/dist/commonjs/types/enums.d.ts +2 -0
  27. package/dist/commonjs/types/enums.js +2 -0
  28. package/dist/commonjs/types/interfaces.d.ts +5 -0
  29. package/dist/esm/capture.d.ts +2 -0
  30. package/dist/esm/capture.js +4 -1
  31. package/dist/esm/components/EmptyState.d.ts +1 -0
  32. package/dist/esm/components/EmptyState.js +2 -2
  33. package/dist/esm/components/Inspector/FabLauncher.js +462 -40
  34. package/dist/esm/components/Inspector/InspectorHeader.js +46 -27
  35. package/dist/esm/components/Inspector/MainScreen.js +4 -3
  36. package/dist/esm/components/Inspector/MediaGalleryTab.js +419 -14
  37. package/dist/esm/components/Inspector/MediaPreviewModal.js +379 -91
  38. package/dist/esm/components/Inspector/NetworkDetail.js +49 -63
  39. package/dist/esm/components/Inspector/SettingsPanel.js +500 -120
  40. package/dist/esm/components/Inspector/TabBar.js +135 -6
  41. package/dist/esm/components/JsonViewer.js +4 -3
  42. package/dist/esm/components/NetworkIcons.d.ts +4 -0
  43. package/dist/esm/components/NetworkIcons.js +21 -0
  44. package/dist/esm/components/SegmentedTabs.js +1 -0
  45. package/dist/esm/constants/version.d.ts +1 -1
  46. package/dist/esm/constants/version.js +1 -1
  47. package/dist/esm/i18n/locales/en.json +20 -2
  48. package/dist/esm/index.js +44 -29
  49. package/dist/esm/native/NativeInspector.d.ts +3 -0
  50. package/dist/esm/native/NativeInspector.js +12 -0
  51. package/dist/esm/native/NativeNetworkInspector.d.ts +1 -0
  52. package/dist/esm/styles/AppColors.js +78 -78
  53. package/dist/esm/types/enums.d.ts +2 -0
  54. package/dist/esm/types/enums.js +2 -0
  55. package/dist/esm/types/interfaces.d.ts +5 -0
  56. package/ios/NetworkInspectorModule.mm +241 -136
  57. package/package.json +1 -1
  58. package/react-native-inapp-inspector.podspec +1 -1
  59. package/src/capture.ts +8 -0
  60. package/src/components/EmptyState.tsx +3 -1
  61. package/src/components/Inspector/FabLauncher.tsx +562 -52
  62. package/src/components/Inspector/InspectorHeader.tsx +60 -22
  63. package/src/components/Inspector/MainScreen.tsx +3 -2
  64. package/src/components/Inspector/MediaGalleryTab.tsx +502 -28
  65. package/src/components/Inspector/MediaPreviewModal.tsx +465 -117
  66. package/src/components/Inspector/NetworkDetail.tsx +80 -97
  67. package/src/components/Inspector/SettingsPanel.tsx +708 -152
  68. package/src/components/Inspector/TabBar.tsx +174 -6
  69. package/src/components/JsonViewer.tsx +4 -2
  70. package/src/components/NetworkIcons.tsx +56 -0
  71. package/src/components/SegmentedTabs.tsx +1 -0
  72. package/src/constants/version.ts +1 -1
  73. package/src/i18n/locales/en.json +20 -4
  74. package/src/index.tsx +46 -31
  75. package/src/native/NativeInspector.ts +17 -0
  76. package/src/native/NativeNetworkInspector.ts +1 -0
  77. package/src/styles/AppColors.ts +80 -80
  78. package/src/types/enums.ts +2 -0
  79. package/src/types/interfaces.ts +5 -0
@@ -17,7 +17,7 @@ import { clearPerformanceEvents } from '../../customHooks/performanceTracker';
17
17
  import { isReduxConnected } from '../../customHooks/reduxLogger';
18
18
  import { isAnalyticsConnected } from '../../customHooks/analyticsLogger';
19
19
  import { useTranslation } from '../../i18n';
20
- import { SignalIcon, TerminalIcon, AnalyticsIcon, SettingsIcon, SunIcon, MoonIcon, ScreenIcon, MotionIcon, LayersIcon, EyeIcon, CheckIcon, TrashIcon, PackageIcon, ReduxIcon, PerformanceIcon, CrashIcon, ShieldAlertIcon, ForwardChevronIcon, ChevronDownIcon, NpmIcon, BoltIcon, BrainIcon, SmartphoneIcon, DatabaseIcon, QrCodeIcon, GitHubIcon, InfoCircleIcon, CopyIcon, FilmIcon, CameraIcon, VideoCameraIcon, MicrophoneIcon, GifIcon, ImageIcon, } from '../NetworkIcons';
20
+ import { SignalIcon, TerminalIcon, AnalyticsIcon, SettingsIcon, SunIcon, MoonIcon, ScreenIcon, MotionIcon, LayersIcon, EyeIcon, CheckIcon, TrashIcon, PackageIcon, ReduxIcon, PerformanceIcon, CrashIcon, ShieldAlertIcon, ForwardChevronIcon, ChevronDownIcon, NpmIcon, BoltIcon, BrainIcon, SmartphoneIcon, DatabaseIcon, QrCodeIcon, GitHubIcon, InfoCircleIcon, CopyIcon, FilmIcon, ScreencastIcon, CameraIcon, VideoCameraIcon, MicrophoneIcon, GifIcon, ImageIcon, } from '../NetworkIcons';
21
21
  import { ScreenCapture } from '../../capture';
22
22
  import { LIB_VERSION } from '../../constants';
23
23
  import { copyToClipboard, isLocalDebugEnvironment, getAppName, getBundleIdentifier, getAppVersionAndBuild, } from '../../helpers';
@@ -115,6 +115,14 @@ const SettingsPanel = () => {
115
115
  icon: 'debugging',
116
116
  desc: 'QR Code bridge for direct Debug APK download & Metro live-reload sync',
117
117
  },
118
+ {
119
+ id: 11,
120
+ key: 'media',
121
+ label: 'Screencast',
122
+ category: 'diagnostic',
123
+ icon: 'media',
124
+ desc: 'Screenshots, video recordings, audio narration & animated GIFs',
125
+ },
118
126
  ].filter(m => m.key === 'debugging'
119
127
  ? Platform.OS === 'android' && isLocalDebugEnvironment()
120
128
  : true), []);
@@ -129,6 +137,7 @@ const SettingsPanel = () => {
129
137
  bundle: Boolean(tabVisibility?.bundle),
130
138
  performance: Boolean(tabVisibility?.performance),
131
139
  debugging: Boolean(tabVisibility?.debugging),
140
+ media: Boolean(tabVisibility?.media ?? true),
132
141
  }));
133
142
  useEffect(() => {
134
143
  setStagedTabVisibility({
@@ -142,6 +151,7 @@ const SettingsPanel = () => {
142
151
  bundle: Boolean(tabVisibility?.bundle),
143
152
  performance: Boolean(tabVisibility?.performance),
144
153
  debugging: Boolean(tabVisibility?.debugging),
154
+ media: Boolean(tabVisibility?.media ?? true),
145
155
  });
146
156
  }, [tabVisibility]);
147
157
  const hasUnsavedChanges = useMemo(() => {
@@ -168,6 +178,7 @@ const SettingsPanel = () => {
168
178
  bundle: Boolean(tabVisibility?.bundle),
169
179
  performance: Boolean(tabVisibility?.performance),
170
180
  debugging: Boolean(tabVisibility?.debugging),
181
+ media: Boolean(tabVisibility?.media ?? true),
171
182
  });
172
183
  },
173
184
  },
@@ -354,7 +365,8 @@ const SettingsPanel = () => {
354
365
  key: 'module',
355
366
  label: t('settings.modulesAndTools', 'Modules & Tools'),
356
367
  Icon: LayersIcon,
357
- badge: `${allModules.filter(m => stagedTabVisibility?.[m.key] || m.key === 'apis').length}/${allModules.length}`,
368
+ badge: `${allModules.filter(m => stagedTabVisibility?.[m.key] ||
369
+ m.key === 'apis').length}/${allModules.length}`,
358
370
  },
359
371
  {
360
372
  key: 'ui',
@@ -399,9 +411,7 @@ const SettingsPanel = () => {
399
411
  fontFamily: AppFonts.interBold,
400
412
  fontSize: 12.5,
401
413
  lineHeight: 16,
402
- color: isActive
403
- ? AppColors.white
404
- : AppColors.grayText,
414
+ color: isActive ? AppColors.white : AppColors.grayText,
405
415
  }}>
406
416
  {tab.label}
407
417
  </Text>
@@ -416,9 +426,7 @@ const SettingsPanel = () => {
416
426
  <Text style={{
417
427
  fontFamily: AppFonts.interBold,
418
428
  fontSize: 9.5,
419
- color: isActive
420
- ? AppColors.white
421
- : AppColors.purple,
429
+ color: isActive ? AppColors.white : AppColors.purple,
422
430
  }}>
423
431
  {tab.badge}
424
432
  </Text>
@@ -575,6 +583,9 @@ const SettingsPanel = () => {
575
583
  {moduleItem.icon === 'debugging' && (<QrCodeIcon color={isChecked
576
584
  ? AppColors.purple
577
585
  : AppColors.grayTextWeak} size={16}/>)}
586
+ {moduleItem.icon === 'media' && (<ScreencastIcon color={isChecked
587
+ ? AppColors.purple
588
+ : AppColors.grayTextWeak} size={16}/>)}
578
589
  </View>
579
590
 
580
591
 
@@ -1407,7 +1418,8 @@ const SettingsPanel = () => {
1407
1418
  color: AppColors.grayText,
1408
1419
  marginTop: 1,
1409
1420
  }}>
1410
- Dynamically sets log limits according to available device memory
1421
+ Dynamically sets log limits according to available device
1422
+ memory
1411
1423
  </Text>
1412
1424
  </View>
1413
1425
  </View>
@@ -1543,7 +1555,12 @@ const SettingsPanel = () => {
1543
1555
  </View>
1544
1556
  </View>
1545
1557
 
1546
- <View style={{ flexDirection: 'row', flexWrap: 'wrap', gap: 8, marginTop: 4 }}>
1558
+ <View style={{
1559
+ flexDirection: 'row',
1560
+ flexWrap: 'wrap',
1561
+ gap: 8,
1562
+ marginTop: 4,
1563
+ }}>
1547
1564
  {[
1548
1565
  {
1549
1566
  label: 'APIs',
@@ -1652,7 +1669,8 @@ const SettingsPanel = () => {
1652
1669
  color: AppColors.grayText,
1653
1670
  marginTop: 1,
1654
1671
  }}>
1655
- Automatically prunes in-memory buffers by 50% when the OS signals low memory
1672
+ Automatically prunes in-memory buffers by 50% when the OS
1673
+ signals low memory
1656
1674
  </Text>
1657
1675
  </View>
1658
1676
  <View style={{
@@ -1772,12 +1790,16 @@ const SettingsPanel = () => {
1772
1790
  paddingHorizontal: 8,
1773
1791
  paddingVertical: 4,
1774
1792
  borderRadius: 6,
1775
- backgroundColor: fmt === 'PNG' ? AppColors.purple : `${AppColors.purple}1A`,
1793
+ backgroundColor: fmt === 'PNG'
1794
+ ? AppColors.purple
1795
+ : `${AppColors.purple}1A`,
1776
1796
  }}>
1777
1797
  <Text style={{
1778
1798
  fontFamily: AppFonts.interBold,
1779
1799
  fontSize: 10,
1780
- color: fmt === 'PNG' ? AppColors.white : AppColors.purple,
1800
+ color: fmt === 'PNG'
1801
+ ? AppColors.white
1802
+ : AppColors.purple,
1781
1803
  }}>
1782
1804
  {fmt}
1783
1805
  </Text>
@@ -1857,7 +1879,9 @@ const SettingsPanel = () => {
1857
1879
  paddingHorizontal: 7,
1858
1880
  paddingVertical: 4,
1859
1881
  borderRadius: 6,
1860
- backgroundColor: i === 0 ? AppColors.purple : `${AppColors.purple}1A`,
1882
+ backgroundColor: i === 0
1883
+ ? AppColors.purple
1884
+ : `${AppColors.purple}1A`,
1861
1885
  }}>
1862
1886
  <Text style={{
1863
1887
  fontFamily: AppFonts.interBold,
@@ -1879,7 +1903,9 @@ const SettingsPanel = () => {
1879
1903
  paddingHorizontal: 6,
1880
1904
  paddingVertical: 4,
1881
1905
  borderRadius: 6,
1882
- backgroundColor: fps === '24' ? AppColors.purple : `${AppColors.purple}1A`,
1906
+ backgroundColor: fps === '24'
1907
+ ? AppColors.purple
1908
+ : `${AppColors.purple}1A`,
1883
1909
  }}>
1884
1910
  <Text style={{
1885
1911
  fontFamily: AppFonts.interBold,
@@ -2079,7 +2105,9 @@ const SettingsPanel = () => {
2079
2105
  lineHeight: 16,
2080
2106
  color: AppColors.grayText,
2081
2107
  }}>
2082
- High-performance in-app debugging, network logging, console inspection, performance profiling, storage viewer & telemetry diagnostics for React Native.
2108
+ High-performance in-app debugging, network logging, console
2109
+ inspection, performance profiling, storage viewer & telemetry
2110
+ diagnostics for React Native.
2083
2111
  </Text>
2084
2112
 
2085
2113
  {updateAvailable && (<TouchableScale onPress={() => {
@@ -2290,7 +2318,9 @@ const SettingsPanel = () => {
2290
2318
  package: {
2291
2319
  name: 'react-native-inapp-inspector',
2292
2320
  version: `v${LIB_VERSION}`,
2293
- latestNpmVersion: latestNpmVersion ? `v${latestNpmVersion}` : 'Checking...',
2321
+ latestNpmVersion: latestNpmVersion
2322
+ ? `v${latestNpmVersion}`
2323
+ : 'Checking...',
2294
2324
  license: 'MIT',
2295
2325
  repository: 'https://github.com/vengatmacuser/react-native-inapp-inspector',
2296
2326
  },
@@ -2298,15 +2328,24 @@ const SettingsPanel = () => {
2298
2328
  name: getAppName(),
2299
2329
  bundleId: getBundleIdentifier(),
2300
2330
  versionAndBuild: getAppVersionAndBuild().formatted,
2301
- buildVariant: __DEV__ ? 'Development (Debug)' : 'Production (Release)',
2331
+ buildVariant: __DEV__
2332
+ ? 'Development (Debug)'
2333
+ : 'Production (Release)',
2302
2334
  metroConnected: isLocalDebugEnvironment(),
2303
2335
  },
2304
2336
  runtime: {
2305
- reactNativeVersion: rnVer ? `${rnVer.major}.${rnVer.minor}.${rnVer.patch}` : '0.74+',
2337
+ reactNativeVersion: rnVer
2338
+ ? `${rnVer.major}.${rnVer.minor}.${rnVer.patch}`
2339
+ : '0.74+',
2306
2340
  reactVersion: React.version,
2307
- jsEngine: Boolean(global?.HermesInternal) ? 'Hermes' : 'JavaScriptCore (JSC)',
2308
- architecture: Boolean(global?.nativeFabricUIManager) ? 'Fabric (New Architecture)' : 'Paper (Legacy Bridge)',
2309
- turboModules: Boolean(global?.__turboModuleProxy || global?.TurboModuleRegistry),
2341
+ jsEngine: Boolean(global?.HermesInternal)
2342
+ ? 'Hermes'
2343
+ : 'JavaScriptCore (JSC)',
2344
+ architecture: Boolean(global?.nativeFabricUIManager)
2345
+ ? 'Fabric (New Architecture)'
2346
+ : 'Paper (Legacy Bridge)',
2347
+ turboModules: Boolean(global?.__turboModuleProxy ||
2348
+ global?.TurboModuleRegistry),
2310
2349
  },
2311
2350
  device: {
2312
2351
  platform: Platform.OS,
@@ -2316,12 +2355,16 @@ const SettingsPanel = () => {
2316
2355
  screenDimensions: `${Math.round(scr.width)}x${Math.round(scr.height)} pt`,
2317
2356
  pixelRatio: PixelRatio.get(),
2318
2357
  fontScale: PixelRatio.getFontScale(),
2319
- timezone: Intl.DateTimeFormat().resolvedOptions().timeZone || 'Unknown',
2358
+ timezone: Intl.DateTimeFormat().resolvedOptions().timeZone ||
2359
+ 'Unknown',
2320
2360
  locale: Intl.DateTimeFormat().resolvedOptions().locale || 'en',
2321
2361
  },
2322
2362
  storageAndCapabilities: {
2323
- storageEngine: isPersistentStorageAvailable() ? 'MMKV (Fast Native Storage)' : 'In-Memory State',
2324
- hasNativeModule: Boolean(global?.NativeInspectorModule || global?.__IN_APP_INSPECTOR_NATIVE__),
2363
+ storageEngine: isPersistentStorageAvailable()
2364
+ ? 'MMKV (Fast Native Storage)'
2365
+ : 'In-Memory State',
2366
+ hasNativeModule: Boolean(global?.NativeInspectorModule ||
2367
+ global?.__IN_APP_INSPECTOR_NATIVE__),
2325
2368
  reduxConnected: isReduxConnected(),
2326
2369
  analyticsConnected: isAnalyticsConnected(),
2327
2370
  },
@@ -2471,7 +2514,9 @@ const SettingsPanel = () => {
2471
2514
  copyToClipboard('npm install react-native-inapp-inspector@latest', 'Install Command');
2472
2515
  showToast('Copied npm install command!');
2473
2516
  }} style={{
2474
- backgroundColor: updateAvailable ? AppColors.purple : `${AppColors.purple}18`,
2517
+ backgroundColor: updateAvailable
2518
+ ? AppColors.purple
2519
+ : `${AppColors.purple}18`,
2475
2520
  paddingVertical: 7,
2476
2521
  paddingHorizontal: 11,
2477
2522
  borderRadius: 8,
@@ -2483,7 +2528,9 @@ const SettingsPanel = () => {
2483
2528
  <Text style={{
2484
2529
  fontFamily: AppFonts.interBold,
2485
2530
  fontSize: 11,
2486
- color: updateAvailable ? AppColors.white : AppColors.purple,
2531
+ color: updateAvailable
2532
+ ? AppColors.white
2533
+ : AppColors.purple,
2487
2534
  }}>
2488
2535
  {updateAvailable ? 'Copy Upgrade' : 'Copy Install'}
2489
2536
  </Text>
@@ -2511,65 +2558,127 @@ const SettingsPanel = () => {
2511
2558
  </Text>
2512
2559
 
2513
2560
  <View style={{ gap: 8 }}>
2514
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2515
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2561
+ <View style={{
2562
+ flexDirection: 'row',
2563
+ justifyContent: 'space-between',
2564
+ alignItems: 'center',
2565
+ }}>
2566
+ <Text style={{
2567
+ fontFamily: AppFonts.interRegular,
2568
+ fontSize: 11.5,
2569
+ color: AppColors.grayText,
2570
+ }}>
2516
2571
  Application Name
2517
2572
  </Text>
2518
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.primaryBlack }}>
2573
+ <Text style={{
2574
+ fontFamily: AppFonts.interBold,
2575
+ fontSize: 11.5,
2576
+ color: AppColors.primaryBlack,
2577
+ }}>
2519
2578
  {getAppName()}
2520
2579
  </Text>
2521
2580
  </View>
2522
2581
 
2523
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2524
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2582
+ <View style={{
2583
+ flexDirection: 'row',
2584
+ justifyContent: 'space-between',
2585
+ alignItems: 'center',
2586
+ }}>
2587
+ <Text style={{
2588
+ fontFamily: AppFonts.interRegular,
2589
+ fontSize: 11.5,
2590
+ color: AppColors.grayText,
2591
+ }}>
2525
2592
  Bundle ID / Package
2526
2593
  </Text>
2527
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11, color: AppColors.primaryBlack }}>
2594
+ <Text style={{
2595
+ fontFamily: AppFonts.interRegular,
2596
+ fontSize: 11,
2597
+ color: AppColors.primaryBlack,
2598
+ }}>
2528
2599
  {getBundleIdentifier()}
2529
2600
  </Text>
2530
2601
  </View>
2531
2602
 
2532
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2533
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2603
+ <View style={{
2604
+ flexDirection: 'row',
2605
+ justifyContent: 'space-between',
2606
+ alignItems: 'center',
2607
+ }}>
2608
+ <Text style={{
2609
+ fontFamily: AppFonts.interRegular,
2610
+ fontSize: 11.5,
2611
+ color: AppColors.grayText,
2612
+ }}>
2534
2613
  Version & Build Number
2535
2614
  </Text>
2536
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.primaryBlack }}>
2615
+ <Text style={{
2616
+ fontFamily: AppFonts.interBold,
2617
+ fontSize: 11.5,
2618
+ color: AppColors.primaryBlack,
2619
+ }}>
2537
2620
  {getAppVersionAndBuild().formatted}
2538
2621
  </Text>
2539
2622
  </View>
2540
2623
 
2541
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2542
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2624
+ <View style={{
2625
+ flexDirection: 'row',
2626
+ justifyContent: 'space-between',
2627
+ alignItems: 'center',
2628
+ }}>
2629
+ <Text style={{
2630
+ fontFamily: AppFonts.interRegular,
2631
+ fontSize: 11.5,
2632
+ color: AppColors.grayText,
2633
+ }}>
2543
2634
  Build Variant
2544
2635
  </Text>
2545
2636
  <View style={{
2546
- backgroundColor: __DEV__ ? `${AppColors.amber500}20` : `${AppColors.emerald500}20`,
2637
+ backgroundColor: __DEV__
2638
+ ? `${AppColors.amber500}20`
2639
+ : `${AppColors.emerald500}20`,
2547
2640
  paddingHorizontal: 6,
2548
2641
  paddingVertical: 1.5,
2549
2642
  borderRadius: 5,
2550
2643
  borderWidth: 1,
2551
- borderColor: __DEV__ ? `${AppColors.amber500}50` : `${AppColors.emerald500}50`,
2644
+ borderColor: __DEV__
2645
+ ? `${AppColors.amber500}50`
2646
+ : `${AppColors.emerald500}50`,
2552
2647
  }}>
2553
2648
  <Text style={{
2554
2649
  fontFamily: AppFonts.interBold,
2555
2650
  fontSize: 10,
2556
- color: __DEV__ ? AppColors.amber500 : AppColors.emerald600,
2651
+ color: __DEV__
2652
+ ? AppColors.amber500
2653
+ : AppColors.emerald600,
2557
2654
  }}>
2558
2655
  {__DEV__ ? 'Development (Debug)' : 'Production (Release)'}
2559
2656
  </Text>
2560
2657
  </View>
2561
2658
  </View>
2562
2659
 
2563
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2564
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2660
+ <View style={{
2661
+ flexDirection: 'row',
2662
+ justifyContent: 'space-between',
2663
+ alignItems: 'center',
2664
+ }}>
2665
+ <Text style={{
2666
+ fontFamily: AppFonts.interRegular,
2667
+ fontSize: 11.5,
2668
+ color: AppColors.grayText,
2669
+ }}>
2565
2670
  Metro Bundler Connection
2566
2671
  </Text>
2567
2672
  <Text style={{
2568
2673
  fontFamily: AppFonts.interBold,
2569
2674
  fontSize: 11.5,
2570
- color: isLocalDebugEnvironment() ? AppColors.emerald600 : AppColors.grayText,
2675
+ color: isLocalDebugEnvironment()
2676
+ ? AppColors.emerald600
2677
+ : AppColors.grayText,
2571
2678
  }}>
2572
- {isLocalDebugEnvironment() ? 'Connected (Hot Reload Active)' : 'Offline / Standalone'}
2679
+ {isLocalDebugEnvironment()
2680
+ ? 'Connected (Hot Reload Active)'
2681
+ : 'Offline / Standalone'}
2573
2682
  </Text>
2574
2683
  </View>
2575
2684
  </View>
@@ -2595,28 +2704,62 @@ const SettingsPanel = () => {
2595
2704
  </Text>
2596
2705
 
2597
2706
  <View style={{ gap: 8 }}>
2598
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2599
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2707
+ <View style={{
2708
+ flexDirection: 'row',
2709
+ justifyContent: 'space-between',
2710
+ alignItems: 'center',
2711
+ }}>
2712
+ <Text style={{
2713
+ fontFamily: AppFonts.interRegular,
2714
+ fontSize: 11.5,
2715
+ color: AppColors.grayText,
2716
+ }}>
2600
2717
  React Native Version
2601
2718
  </Text>
2602
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.primaryBlack }}>
2603
- v{(Platform.constants?.reactNativeVersion?.major != null)
2719
+ <Text style={{
2720
+ fontFamily: AppFonts.interBold,
2721
+ fontSize: 11.5,
2722
+ color: AppColors.primaryBlack,
2723
+ }}>
2724
+ v
2725
+ {Platform.constants?.reactNativeVersion?.major !=
2726
+ null
2604
2727
  ? `${Platform.constants.reactNativeVersion.major}.${Platform.constants.reactNativeVersion.minor}.${Platform.constants.reactNativeVersion.patch}`
2605
2728
  : '0.74+'}
2606
2729
  </Text>
2607
2730
  </View>
2608
2731
 
2609
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2610
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2732
+ <View style={{
2733
+ flexDirection: 'row',
2734
+ justifyContent: 'space-between',
2735
+ alignItems: 'center',
2736
+ }}>
2737
+ <Text style={{
2738
+ fontFamily: AppFonts.interRegular,
2739
+ fontSize: 11.5,
2740
+ color: AppColors.grayText,
2741
+ }}>
2611
2742
  React Core Version
2612
2743
  </Text>
2613
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.primaryBlack }}>
2744
+ <Text style={{
2745
+ fontFamily: AppFonts.interBold,
2746
+ fontSize: 11.5,
2747
+ color: AppColors.primaryBlack,
2748
+ }}>
2614
2749
  v{React.version}
2615
2750
  </Text>
2616
2751
  </View>
2617
2752
 
2618
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2619
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2753
+ <View style={{
2754
+ flexDirection: 'row',
2755
+ justifyContent: 'space-between',
2756
+ alignItems: 'center',
2757
+ }}>
2758
+ <Text style={{
2759
+ fontFamily: AppFonts.interRegular,
2760
+ fontSize: 11.5,
2761
+ color: AppColors.grayText,
2762
+ }}>
2620
2763
  JavaScript Engine
2621
2764
  </Text>
2622
2765
  <View style={{
@@ -2627,27 +2770,60 @@ const SettingsPanel = () => {
2627
2770
  borderWidth: 1,
2628
2771
  borderColor: `${AppColors.purple}40`,
2629
2772
  }}>
2630
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 10.5, color: AppColors.purple }}>
2631
- {Boolean(global?.HermesInternal) ? 'Hermes Engine (Active)' : 'JavaScriptCore (JSC)'}
2773
+ <Text style={{
2774
+ fontFamily: AppFonts.interBold,
2775
+ fontSize: 10.5,
2776
+ color: AppColors.purple,
2777
+ }}>
2778
+ {Boolean(global?.HermesInternal)
2779
+ ? 'Hermes Engine (Active)'
2780
+ : 'JavaScriptCore (JSC)'}
2632
2781
  </Text>
2633
2782
  </View>
2634
2783
  </View>
2635
2784
 
2636
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2637
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2785
+ <View style={{
2786
+ flexDirection: 'row',
2787
+ justifyContent: 'space-between',
2788
+ alignItems: 'center',
2789
+ }}>
2790
+ <Text style={{
2791
+ fontFamily: AppFonts.interRegular,
2792
+ fontSize: 11.5,
2793
+ color: AppColors.grayText,
2794
+ }}>
2638
2795
  Rendering Architecture
2639
2796
  </Text>
2640
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.primaryBlack }}>
2641
- {Boolean(global?.nativeFabricUIManager) ? 'Fabric (New Architecture)' : 'Paper (Legacy Bridge)'}
2797
+ <Text style={{
2798
+ fontFamily: AppFonts.interBold,
2799
+ fontSize: 11.5,
2800
+ color: AppColors.primaryBlack,
2801
+ }}>
2802
+ {Boolean(global?.nativeFabricUIManager)
2803
+ ? 'Fabric (New Architecture)'
2804
+ : 'Paper (Legacy Bridge)'}
2642
2805
  </Text>
2643
2806
  </View>
2644
2807
 
2645
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2646
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2808
+ <View style={{
2809
+ flexDirection: 'row',
2810
+ justifyContent: 'space-between',
2811
+ alignItems: 'center',
2812
+ }}>
2813
+ <Text style={{
2814
+ fontFamily: AppFonts.interRegular,
2815
+ fontSize: 11.5,
2816
+ color: AppColors.grayText,
2817
+ }}>
2647
2818
  TurboModules Support
2648
2819
  </Text>
2649
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.primaryBlack }}>
2650
- {Boolean(global?.__turboModuleProxy || global?.TurboModuleRegistry)
2820
+ <Text style={{
2821
+ fontFamily: AppFonts.interBold,
2822
+ fontSize: 11.5,
2823
+ color: AppColors.primaryBlack,
2824
+ }}>
2825
+ {Boolean(global?.__turboModuleProxy ||
2826
+ global?.TurboModuleRegistry)
2651
2827
  ? 'Enabled (C++ JSI)'
2652
2828
  : 'Standard Bridge'}
2653
2829
  </Text>
@@ -2675,59 +2851,149 @@ const SettingsPanel = () => {
2675
2851
  </Text>
2676
2852
 
2677
2853
  <View style={{ gap: 8 }}>
2678
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2679
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2854
+ <View style={{
2855
+ flexDirection: 'row',
2856
+ justifyContent: 'space-between',
2857
+ alignItems: 'center',
2858
+ }}>
2859
+ <Text style={{
2860
+ fontFamily: AppFonts.interRegular,
2861
+ fontSize: 11.5,
2862
+ color: AppColors.grayText,
2863
+ }}>
2680
2864
  Operating System
2681
2865
  </Text>
2682
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.primaryBlack }}>
2683
- {Platform.OS === 'ios' ? 'Apple iOS' : Platform.OS === 'android' ? 'Google Android' : Platform.OS}{' '}
2866
+ <Text style={{
2867
+ fontFamily: AppFonts.interBold,
2868
+ fontSize: 11.5,
2869
+ color: AppColors.primaryBlack,
2870
+ }}>
2871
+ {Platform.OS === 'ios'
2872
+ ? 'Apple iOS'
2873
+ : Platform.OS === 'android'
2874
+ ? 'Google Android'
2875
+ : Platform.OS}{' '}
2684
2876
  {Platform.Version}
2685
2877
  </Text>
2686
2878
  </View>
2687
2879
 
2688
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2689
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2880
+ <View style={{
2881
+ flexDirection: 'row',
2882
+ justifyContent: 'space-between',
2883
+ alignItems: 'center',
2884
+ }}>
2885
+ <Text style={{
2886
+ fontFamily: AppFonts.interRegular,
2887
+ fontSize: 11.5,
2888
+ color: AppColors.grayText,
2889
+ }}>
2690
2890
  Device Hardware Model
2691
2891
  </Text>
2692
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.primaryBlack }}>
2892
+ <Text style={{
2893
+ fontFamily: AppFonts.interBold,
2894
+ fontSize: 11.5,
2895
+ color: AppColors.primaryBlack,
2896
+ }}>
2693
2897
  {Platform.constants?.Model ||
2694
- (Platform.OS === 'ios' ? 'Apple Device' : 'Android Device')}
2898
+ (Platform.OS === 'ios'
2899
+ ? 'Apple Device'
2900
+ : 'Android Device')}
2695
2901
  </Text>
2696
2902
  </View>
2697
2903
 
2698
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2699
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2904
+ <View style={{
2905
+ flexDirection: 'row',
2906
+ justifyContent: 'space-between',
2907
+ alignItems: 'center',
2908
+ }}>
2909
+ <Text style={{
2910
+ fontFamily: AppFonts.interRegular,
2911
+ fontSize: 11.5,
2912
+ color: AppColors.grayText,
2913
+ }}>
2700
2914
  Window Viewport (Points)
2701
2915
  </Text>
2702
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.primaryBlack }}>
2703
- {Math.round(Dimensions.get('window').width)} × {Math.round(Dimensions.get('window').height)} pt
2916
+ <Text style={{
2917
+ fontFamily: AppFonts.interBold,
2918
+ fontSize: 11.5,
2919
+ color: AppColors.primaryBlack,
2920
+ }}>
2921
+ {Math.round(Dimensions.get('window').width)} ×{' '}
2922
+ {Math.round(Dimensions.get('window').height)} pt
2704
2923
  </Text>
2705
2924
  </View>
2706
2925
 
2707
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2708
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2926
+ <View style={{
2927
+ flexDirection: 'row',
2928
+ justifyContent: 'space-between',
2929
+ alignItems: 'center',
2930
+ }}>
2931
+ <Text style={{
2932
+ fontFamily: AppFonts.interRegular,
2933
+ fontSize: 11.5,
2934
+ color: AppColors.grayText,
2935
+ }}>
2709
2936
  Native Physical Resolution
2710
2937
  </Text>
2711
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.primaryBlack }}>
2712
- {Math.round(Dimensions.get('screen').width * PixelRatio.get())} × {Math.round(Dimensions.get('screen').height * PixelRatio.get())} px
2938
+ <Text style={{
2939
+ fontFamily: AppFonts.interBold,
2940
+ fontSize: 11.5,
2941
+ color: AppColors.primaryBlack,
2942
+ }}>
2943
+ {Math.round(Dimensions.get('screen').width * PixelRatio.get())}{' '}
2944
+ ×{' '}
2945
+ {Math.round(Dimensions.get('screen').height * PixelRatio.get())}{' '}
2946
+ px
2713
2947
  </Text>
2714
2948
  </View>
2715
2949
 
2716
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2717
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2950
+ <View style={{
2951
+ flexDirection: 'row',
2952
+ justifyContent: 'space-between',
2953
+ alignItems: 'center',
2954
+ }}>
2955
+ <Text style={{
2956
+ fontFamily: AppFonts.interRegular,
2957
+ fontSize: 11.5,
2958
+ color: AppColors.grayText,
2959
+ }}>
2718
2960
  Pixel Density & Font Scale
2719
2961
  </Text>
2720
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.primaryBlack }}>
2721
- {PixelRatio.get().toFixed(1)}x ({PixelRatio.get() >= 3 ? '@3x' : PixelRatio.get() >= 2 ? '@2x' : '@1x'}) • Font: {PixelRatio.getFontScale().toFixed(2)}x
2962
+ <Text style={{
2963
+ fontFamily: AppFonts.interBold,
2964
+ fontSize: 11.5,
2965
+ color: AppColors.primaryBlack,
2966
+ }}>
2967
+ {PixelRatio.get().toFixed(1)}x (
2968
+ {PixelRatio.get() >= 3
2969
+ ? '@3x'
2970
+ : PixelRatio.get() >= 2
2971
+ ? '@2x'
2972
+ : '@1x'}
2973
+ ) • Font: {PixelRatio.getFontScale().toFixed(2)}x
2722
2974
  </Text>
2723
2975
  </View>
2724
2976
 
2725
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2726
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
2977
+ <View style={{
2978
+ flexDirection: 'row',
2979
+ justifyContent: 'space-between',
2980
+ alignItems: 'center',
2981
+ }}>
2982
+ <Text style={{
2983
+ fontFamily: AppFonts.interRegular,
2984
+ fontSize: 11.5,
2985
+ color: AppColors.grayText,
2986
+ }}>
2727
2987
  Timezone & Locale
2728
2988
  </Text>
2729
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.primaryBlack }}>
2730
- {Intl.DateTimeFormat().resolvedOptions().timeZone || 'System'} ({Intl.DateTimeFormat().resolvedOptions().locale || 'en'})
2989
+ <Text style={{
2990
+ fontFamily: AppFonts.interBold,
2991
+ fontSize: 11.5,
2992
+ color: AppColors.primaryBlack,
2993
+ }}>
2994
+ {Intl.DateTimeFormat().resolvedOptions().timeZone ||
2995
+ 'System'}{' '}
2996
+ ({Intl.DateTimeFormat().resolvedOptions().locale || 'en'})
2731
2997
  </Text>
2732
2998
  </View>
2733
2999
  </View>
@@ -2753,73 +3019,151 @@ const SettingsPanel = () => {
2753
3019
  </Text>
2754
3020
 
2755
3021
  <View style={{ gap: 8 }}>
2756
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2757
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
3022
+ <View style={{
3023
+ flexDirection: 'row',
3024
+ justifyContent: 'space-between',
3025
+ alignItems: 'center',
3026
+ }}>
3027
+ <Text style={{
3028
+ fontFamily: AppFonts.interRegular,
3029
+ fontSize: 11.5,
3030
+ color: AppColors.grayText,
3031
+ }}>
2758
3032
  Storage Persistence Engine
2759
3033
  </Text>
2760
3034
  <View style={{
2761
- backgroundColor: isPersistentStorageAvailable() ? `${AppColors.emerald500}18` : `${AppColors.amber500}18`,
3035
+ backgroundColor: isPersistentStorageAvailable()
3036
+ ? `${AppColors.emerald500}18`
3037
+ : `${AppColors.amber500}18`,
2762
3038
  paddingHorizontal: 6,
2763
3039
  paddingVertical: 1.5,
2764
3040
  borderRadius: 5,
2765
3041
  borderWidth: 1,
2766
- borderColor: isPersistentStorageAvailable() ? `${AppColors.emerald500}50` : `${AppColors.amber500}50`,
3042
+ borderColor: isPersistentStorageAvailable()
3043
+ ? `${AppColors.emerald500}50`
3044
+ : `${AppColors.amber500}50`,
2767
3045
  }}>
2768
3046
  <Text style={{
2769
3047
  fontFamily: AppFonts.interBold,
2770
3048
  fontSize: 10.5,
2771
- color: isPersistentStorageAvailable() ? AppColors.emerald600 : AppColors.amber500,
3049
+ color: isPersistentStorageAvailable()
3050
+ ? AppColors.emerald600
3051
+ : AppColors.amber500,
2772
3052
  }}>
2773
- {isPersistentStorageAvailable() ? 'MMKV Fast Native Storage' : 'In-Memory State'}
3053
+ {isPersistentStorageAvailable()
3054
+ ? 'MMKV Fast Native Storage'
3055
+ : 'In-Memory State'}
2774
3056
  </Text>
2775
3057
  </View>
2776
3058
  </View>
2777
3059
 
2778
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2779
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
3060
+ <View style={{
3061
+ flexDirection: 'row',
3062
+ justifyContent: 'space-between',
3063
+ alignItems: 'center',
3064
+ }}>
3065
+ <Text style={{
3066
+ fontFamily: AppFonts.interRegular,
3067
+ fontSize: 11.5,
3068
+ color: AppColors.grayText,
3069
+ }}>
2780
3070
  Native Module Status
2781
3071
  </Text>
2782
3072
  <Text style={{
2783
3073
  fontFamily: AppFonts.interBold,
2784
3074
  fontSize: 11.5,
2785
- color: Boolean(global?.NativeInspectorModule) ? AppColors.emerald600 : AppColors.grayText,
3075
+ color: Boolean(global?.NativeInspectorModule)
3076
+ ? AppColors.emerald600
3077
+ : AppColors.grayText,
2786
3078
  }}>
2787
- {Boolean(global?.NativeInspectorModule) ? 'Linked & Active' : 'JavaScript Only'}
3079
+ {Boolean(global?.NativeInspectorModule)
3080
+ ? 'Linked & Active'
3081
+ : 'JavaScript Only'}
2788
3082
  </Text>
2789
3083
  </View>
2790
3084
 
2791
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2792
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
3085
+ <View style={{
3086
+ flexDirection: 'row',
3087
+ justifyContent: 'space-between',
3088
+ alignItems: 'center',
3089
+ }}>
3090
+ <Text style={{
3091
+ fontFamily: AppFonts.interRegular,
3092
+ fontSize: 11.5,
3093
+ color: AppColors.grayText,
3094
+ }}>
2793
3095
  Network Logger Interceptor
2794
3096
  </Text>
2795
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.emerald600 }}>
3097
+ <Text style={{
3098
+ fontFamily: AppFonts.interBold,
3099
+ fontSize: 11.5,
3100
+ color: AppColors.emerald600,
3101
+ }}>
2796
3102
  Active (XMLHttpRequest & Fetch Hooked)
2797
3103
  </Text>
2798
3104
  </View>
2799
3105
 
2800
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2801
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
3106
+ <View style={{
3107
+ flexDirection: 'row',
3108
+ justifyContent: 'space-between',
3109
+ alignItems: 'center',
3110
+ }}>
3111
+ <Text style={{
3112
+ fontFamily: AppFonts.interRegular,
3113
+ fontSize: 11.5,
3114
+ color: AppColors.grayText,
3115
+ }}>
2802
3116
  Redux & Analytics Watchers
2803
3117
  </Text>
2804
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.primaryBlack }}>
2805
- Redux: {isReduxConnected() ? 'Connected' : 'Listening'} • Analytics: {isAnalyticsConnected() ? 'Connected' : 'Listening'}
3118
+ <Text style={{
3119
+ fontFamily: AppFonts.interBold,
3120
+ fontSize: 11.5,
3121
+ color: AppColors.primaryBlack,
3122
+ }}>
3123
+ Redux: {isReduxConnected() ? 'Connected' : 'Listening'} •
3124
+ Analytics:{' '}
3125
+ {isAnalyticsConnected() ? 'Connected' : 'Listening'}
2806
3126
  </Text>
2807
3127
  </View>
2808
3128
 
2809
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2810
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
3129
+ <View style={{
3130
+ flexDirection: 'row',
3131
+ justifyContent: 'space-between',
3132
+ alignItems: 'center',
3133
+ }}>
3134
+ <Text style={{
3135
+ fontFamily: AppFonts.interRegular,
3136
+ fontSize: 11.5,
3137
+ color: AppColors.grayText,
3138
+ }}>
2811
3139
  Crash & Exception Boundary
2812
3140
  </Text>
2813
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.emerald600 }}>
3141
+ <Text style={{
3142
+ fontFamily: AppFonts.interBold,
3143
+ fontSize: 11.5,
3144
+ color: AppColors.emerald600,
3145
+ }}>
2814
3146
  Global JS Exception Handler Active
2815
3147
  </Text>
2816
3148
  </View>
2817
3149
 
2818
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2819
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
3150
+ <View style={{
3151
+ flexDirection: 'row',
3152
+ justifyContent: 'space-between',
3153
+ alignItems: 'center',
3154
+ }}>
3155
+ <Text style={{
3156
+ fontFamily: AppFonts.interRegular,
3157
+ fontSize: 11.5,
3158
+ color: AppColors.grayText,
3159
+ }}>
2820
3160
  Memory Management
2821
3161
  </Text>
2822
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.emerald600 }}>
3162
+ <Text style={{
3163
+ fontFamily: AppFonts.interBold,
3164
+ fontSize: 11.5,
3165
+ color: AppColors.emerald600,
3166
+ }}>
2823
3167
  Dynamic Auto RAM Tiering Active
2824
3168
  </Text>
2825
3169
  </View>
@@ -2845,29 +3189,65 @@ const SettingsPanel = () => {
2845
3189
  LICENSE & CREDITS
2846
3190
  </Text>
2847
3191
 
2848
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2849
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
3192
+ <View style={{
3193
+ flexDirection: 'row',
3194
+ justifyContent: 'space-between',
3195
+ alignItems: 'center',
3196
+ }}>
3197
+ <Text style={{
3198
+ fontFamily: AppFonts.interRegular,
3199
+ fontSize: 11.5,
3200
+ color: AppColors.grayText,
3201
+ }}>
2850
3202
  License
2851
3203
  </Text>
2852
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.emerald600 }}>
3204
+ <Text style={{
3205
+ fontFamily: AppFonts.interBold,
3206
+ fontSize: 11.5,
3207
+ color: AppColors.emerald600,
3208
+ }}>
2853
3209
  MIT Permissive Open Source
2854
3210
  </Text>
2855
3211
  </View>
2856
3212
 
2857
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2858
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
3213
+ <View style={{
3214
+ flexDirection: 'row',
3215
+ justifyContent: 'space-between',
3216
+ alignItems: 'center',
3217
+ }}>
3218
+ <Text style={{
3219
+ fontFamily: AppFonts.interRegular,
3220
+ fontSize: 11.5,
3221
+ color: AppColors.grayText,
3222
+ }}>
2859
3223
  Created & Maintained By
2860
3224
  </Text>
2861
- <Text style={{ fontFamily: AppFonts.interBold, fontSize: 11.5, color: AppColors.primaryBlack }}>
3225
+ <Text style={{
3226
+ fontFamily: AppFonts.interBold,
3227
+ fontSize: 11.5,
3228
+ color: AppColors.primaryBlack,
3229
+ }}>
2862
3230
  Vengateswaran
2863
3231
  </Text>
2864
3232
  </View>
2865
3233
 
2866
- <View style={{ flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center' }}>
2867
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11.5, color: AppColors.grayText }}>
3234
+ <View style={{
3235
+ flexDirection: 'row',
3236
+ justifyContent: 'space-between',
3237
+ alignItems: 'center',
3238
+ }}>
3239
+ <Text style={{
3240
+ fontFamily: AppFonts.interRegular,
3241
+ fontSize: 11.5,
3242
+ color: AppColors.grayText,
3243
+ }}>
2868
3244
  Repository
2869
3245
  </Text>
2870
- <Text style={{ fontFamily: AppFonts.interRegular, fontSize: 11, color: AppColors.purple }}>
3246
+ <Text style={{
3247
+ fontFamily: AppFonts.interRegular,
3248
+ fontSize: 11,
3249
+ color: AppColors.purple,
3250
+ }}>
2871
3251
  github.com/vengatmacuser/react-native-inapp-inspector
2872
3252
  </Text>
2873
3253
  </View>