react-native-inapp-inspector 2.3.14 → 2.3.16

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 (125) hide show
  1. package/README.md +1 -0
  2. package/dist/commonjs/components/AnimatedEntrance.js +3 -3
  3. package/dist/commonjs/components/ConsoleLogCard.js +174 -100
  4. package/dist/commonjs/components/Inspector/AnalyticsTab.js +0 -22
  5. package/dist/commonjs/components/Inspector/ConsoleTab.js +25 -38
  6. package/dist/commonjs/components/Inspector/CrashTab.js +19 -28
  7. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +198 -98
  8. package/dist/commonjs/components/Inspector/FeedbackModal.d.ts +7 -0
  9. package/dist/commonjs/components/Inspector/FeedbackModal.js +552 -0
  10. package/dist/commonjs/components/Inspector/InspectorHeader.js +58 -6
  11. package/dist/commonjs/components/Inspector/MainScreen.js +100 -58
  12. package/dist/commonjs/components/Inspector/NetworkTab.js +26 -371
  13. package/dist/commonjs/components/Inspector/NpmStarPrompt.d.ts +3 -0
  14. package/dist/commonjs/components/Inspector/NpmStarPrompt.js +494 -0
  15. package/dist/commonjs/components/Inspector/PerformanceTab.js +40 -7
  16. package/dist/commonjs/components/Inspector/ReduxTab.js +3 -23
  17. package/dist/commonjs/components/Inspector/SettingsPanel.js +1035 -173
  18. package/dist/commonjs/components/Inspector/StorageTab.js +23 -28
  19. package/dist/commonjs/components/Inspector/TabBar.js +50 -15
  20. package/dist/commonjs/components/JsonViewer.js +14 -2
  21. package/dist/commonjs/components/LogCard.js +428 -227
  22. package/dist/commonjs/components/NetworkIcons.d.ts +5 -0
  23. package/dist/commonjs/components/NetworkIcons.js +33 -2
  24. package/dist/commonjs/constants/version.d.ts +1 -1
  25. package/dist/commonjs/constants/version.js +1 -1
  26. package/dist/commonjs/customHooks/analyticsLogger.js +1 -1
  27. package/dist/commonjs/customHooks/consoleLogger.js +34 -2
  28. package/dist/commonjs/customHooks/crashHandler.js +1 -1
  29. package/dist/commonjs/customHooks/networkLogger.js +184 -26
  30. package/dist/commonjs/helpers/index.d.ts +1 -0
  31. package/dist/commonjs/helpers/index.js +1 -0
  32. package/dist/commonjs/helpers/remoteConfig.d.ts +4 -0
  33. package/dist/commonjs/helpers/remoteConfig.js +165 -0
  34. package/dist/commonjs/helpers/searchQueryParser.d.ts +1 -1
  35. package/dist/commonjs/helpers/searchQueryParser.js +39 -291
  36. package/dist/commonjs/helpers/telemetry.d.ts +5 -0
  37. package/dist/commonjs/helpers/telemetry.js +339 -8
  38. package/dist/commonjs/index.d.ts +1 -0
  39. package/dist/commonjs/index.js +173 -29
  40. package/dist/commonjs/styles/AppFonts.d.ts +2 -0
  41. package/dist/commonjs/styles/AppFonts.js +1 -0
  42. package/dist/commonjs/styles/index.d.ts +22 -0
  43. package/dist/commonjs/styles/index.js +19 -0
  44. package/dist/commonjs/types/enums.d.ts +1 -0
  45. package/dist/commonjs/types/enums.js +1 -0
  46. package/dist/commonjs/types/interfaces.d.ts +12 -0
  47. package/dist/esm/components/AnimatedEntrance.js +3 -3
  48. package/dist/esm/components/ConsoleLogCard.js +141 -100
  49. package/dist/esm/components/Inspector/AnalyticsTab.js +1 -23
  50. package/dist/esm/components/Inspector/ConsoleTab.js +26 -39
  51. package/dist/esm/components/Inspector/CrashTab.js +20 -29
  52. package/dist/esm/components/Inspector/DeviceInfoTab.js +198 -98
  53. package/dist/esm/components/Inspector/FeedbackModal.d.ts +7 -0
  54. package/dist/esm/components/Inspector/FeedbackModal.js +515 -0
  55. package/dist/esm/components/Inspector/InspectorHeader.js +60 -8
  56. package/dist/esm/components/Inspector/MainScreen.js +101 -59
  57. package/dist/esm/components/Inspector/NetworkTab.js +27 -372
  58. package/dist/esm/components/Inspector/NpmStarPrompt.d.ts +3 -0
  59. package/dist/esm/components/Inspector/NpmStarPrompt.js +454 -0
  60. package/dist/esm/components/Inspector/PerformanceTab.js +40 -7
  61. package/dist/esm/components/Inspector/ReduxTab.js +4 -24
  62. package/dist/esm/components/Inspector/SettingsPanel.js +1038 -176
  63. package/dist/esm/components/Inspector/StorageTab.js +23 -28
  64. package/dist/esm/components/Inspector/TabBar.js +50 -15
  65. package/dist/esm/components/JsonViewer.js +14 -2
  66. package/dist/esm/components/LogCard.js +422 -221
  67. package/dist/esm/components/NetworkIcons.d.ts +5 -0
  68. package/dist/esm/components/NetworkIcons.js +26 -0
  69. package/dist/esm/constants/version.d.ts +1 -1
  70. package/dist/esm/constants/version.js +1 -1
  71. package/dist/esm/customHooks/analyticsLogger.js +1 -1
  72. package/dist/esm/customHooks/consoleLogger.js +34 -2
  73. package/dist/esm/customHooks/crashHandler.js +1 -1
  74. package/dist/esm/customHooks/networkLogger.js +184 -26
  75. package/dist/esm/helpers/index.d.ts +1 -0
  76. package/dist/esm/helpers/index.js +1 -0
  77. package/dist/esm/helpers/remoteConfig.d.ts +4 -0
  78. package/dist/esm/helpers/remoteConfig.js +160 -0
  79. package/dist/esm/helpers/searchQueryParser.d.ts +1 -1
  80. package/dist/esm/helpers/searchQueryParser.js +39 -291
  81. package/dist/esm/helpers/telemetry.d.ts +5 -0
  82. package/dist/esm/helpers/telemetry.js +332 -9
  83. package/dist/esm/index.d.ts +1 -0
  84. package/dist/esm/index.js +171 -29
  85. package/dist/esm/styles/AppFonts.d.ts +2 -0
  86. package/dist/esm/styles/AppFonts.js +1 -0
  87. package/dist/esm/styles/index.d.ts +22 -0
  88. package/dist/esm/styles/index.js +19 -0
  89. package/dist/esm/types/enums.d.ts +1 -0
  90. package/dist/esm/types/enums.js +1 -0
  91. package/dist/esm/types/interfaces.d.ts +12 -0
  92. package/package.json +1 -1
  93. package/src/components/AnimatedEntrance.tsx +3 -3
  94. package/src/components/ConsoleLogCard.tsx +154 -103
  95. package/src/components/Inspector/AnalyticsTab.tsx +0 -23
  96. package/src/components/Inspector/ConsoleTab.tsx +27 -41
  97. package/src/components/Inspector/CrashTab.tsx +19 -28
  98. package/src/components/Inspector/DeviceInfoTab.tsx +224 -102
  99. package/src/components/Inspector/FeedbackModal.tsx +626 -0
  100. package/src/components/Inspector/InspectorHeader.tsx +83 -5
  101. package/src/components/Inspector/MainScreen.tsx +61 -6
  102. package/src/components/Inspector/NetworkTab.tsx +70 -480
  103. package/src/components/Inspector/NpmStarPrompt.tsx +532 -0
  104. package/src/components/Inspector/PerformanceTab.tsx +44 -8
  105. package/src/components/Inspector/ReduxTab.tsx +9 -24
  106. package/src/components/Inspector/SettingsPanel.tsx +1162 -197
  107. package/src/components/Inspector/StorageTab.tsx +27 -30
  108. package/src/components/Inspector/TabBar.tsx +57 -20
  109. package/src/components/JsonViewer.tsx +15 -2
  110. package/src/components/LogCard.tsx +528 -339
  111. package/src/components/NetworkIcons.tsx +92 -0
  112. package/src/constants/version.ts +1 -1
  113. package/src/customHooks/analyticsLogger.ts +1 -1
  114. package/src/customHooks/consoleLogger.ts +36 -3
  115. package/src/customHooks/crashHandler.ts +1 -1
  116. package/src/customHooks/networkLogger.ts +214 -26
  117. package/src/helpers/index.ts +1 -0
  118. package/src/helpers/remoteConfig.ts +212 -0
  119. package/src/helpers/searchQueryParser.ts +42 -284
  120. package/src/helpers/telemetry.ts +381 -10
  121. package/src/index.tsx +374 -211
  122. package/src/styles/AppFonts.ts +2 -0
  123. package/src/styles/index.ts +20 -1
  124. package/src/types/enums.ts +1 -0
  125. package/src/types/interfaces.ts +12 -0
package/src/index.tsx CHANGED
@@ -87,6 +87,8 @@ import {
87
87
  import {
88
88
  trackActiveTelemetryHeartbeat,
89
89
  setTelemetryEnabled,
90
+ trackInspectorTabView,
91
+ trackInspectorScreenView,
90
92
  } from './helpers/telemetry';
91
93
 
92
94
  import {
@@ -124,6 +126,11 @@ import {
124
126
  isNativeModuleAvailable,
125
127
  } from './native/NativeInspector';
126
128
 
129
+ import {
130
+ fetchRemoteConfigModuleStatus,
131
+ isFirebaseRemoteConfigAvailable,
132
+ } from './helpers/remoteConfig';
133
+
127
134
  // Constants
128
135
  import {
129
136
  StatusFilter,
@@ -157,6 +164,7 @@ const NetworkInspector = ({
157
164
  environment,
158
165
  initialVisible = false,
159
166
  visible: controlledVisible,
167
+ remoteConfig,
160
168
  }: NetworkInspectorProps): React.JSX.Element | null => {
161
169
  // Set custom storage synchronously during render phase
162
170
  setCustomStorage(storage || null);
@@ -310,7 +318,7 @@ const NetworkInspector = ({
310
318
  error: boolean;
311
319
  }>({
312
320
  info: true,
313
- warn: false,
321
+ warn: true,
314
322
  error: true,
315
323
  });
316
324
  const visibleConsoleLogs = useMemo(() => {
@@ -341,7 +349,7 @@ const NetworkInspector = ({
341
349
  const [logSearch, setLogSearch] = useState('');
342
350
  const [logFilters, setLogFilters] = useState<
343
351
  Set<'all' | 'info' | 'warn' | 'error' | 'user-log' | 'analytics'>
344
- >(new Set(['user-log']));
352
+ >(new Set(['all']));
345
353
 
346
354
  // ─── Settings state ──────────────────────────────────────────────────────────
347
355
  const [settingsPage, setSettingsPage] = useState<
@@ -352,6 +360,7 @@ const NetworkInspector = ({
352
360
  | 'redux'
353
361
  | null
354
362
  >(null);
363
+ const [isFeedbackOpen, setIsFeedbackOpen] = useState<boolean>(false);
355
364
  const [settingsActiveSubTab, setSettingsActiveSubTab] = useState<SettingsSubTab>('module');
356
365
  const [tabVisibility, setTabVisibility] = useState<
357
366
  Record<ActiveTab, boolean>
@@ -368,8 +377,8 @@ const NetworkInspector = ({
368
377
  debugging: false,
369
378
  });
370
379
 
371
- const [maxNetworkLogs, setMaxNetworkLogs] = useState<number>(100);
372
- const [maxAnalyticsEventsLimit, setMaxAnalyticsEventsLimit] = useState<number>(75);
380
+ const [maxNetworkLogs, setMaxNetworkLogs] = useState<number>(250);
381
+ const [maxAnalyticsEventsLimit, setMaxAnalyticsEventsLimit] = useState<number>(150);
373
382
  const [isAutoRamLimitEnabled, setIsAutoRamLimitEnabled] = useState<boolean>(true);
374
383
  const [deviceFreeRamMb, setDeviceFreeRamMb] = useState<number>(1800);
375
384
 
@@ -513,6 +522,28 @@ const NetworkInspector = ({
513
522
  };
514
523
  }, []);
515
524
 
525
+ // Fetch and apply module enable/disable statuses from Firebase Remote Config if configured or available
526
+ useEffect(() => {
527
+ let isMounted = true;
528
+ if (remoteConfig === false) return;
529
+
530
+ fetchRemoteConfigModuleStatus(typeof remoteConfig === 'object' ? remoteConfig : undefined)
531
+ .then(remoteModules => {
532
+ if (isMounted && remoteModules) {
533
+ setTabVisibility(prev => ({
534
+ ...prev,
535
+ ...remoteModules,
536
+ apis: remoteModules.apis ?? true,
537
+ }));
538
+ }
539
+ })
540
+ .catch(() => {});
541
+
542
+ return () => {
543
+ isMounted = false;
544
+ };
545
+ }, [remoteConfig]);
546
+
516
547
  useEffect(() => {
517
548
  if (!settingsHydratedRef.current) return;
518
549
  saveSettings({
@@ -655,6 +686,7 @@ const NetworkInspector = ({
655
686
  setActiveTab(key);
656
687
  loadNativePage(key);
657
688
  }
689
+ trackInspectorTabView(key);
658
690
  }, [loadNativePage]);
659
691
 
660
692
  const [selectedEvent, setSelectedEvent] = useState<AnalyticsEvent | null>(
@@ -1013,11 +1045,13 @@ const NetworkInspector = ({
1013
1045
  useEffect(() => {
1014
1046
  isVisibleRefObj.current = visible;
1015
1047
  if (visible) {
1048
+ trackInspectorScreenView('InspectorModal');
1016
1049
  const target =
1017
1050
  defaultTab === 'apis' || tabVisibility?.[defaultTab]
1018
1051
  ? defaultTab
1019
1052
  : 'apis';
1020
1053
  setActiveTab(target);
1054
+ trackInspectorTabView(target);
1021
1055
 
1022
1056
 
1023
1057
 
@@ -1715,7 +1749,7 @@ const NetworkInspector = ({
1715
1749
  });
1716
1750
  }
1717
1751
 
1718
- // Comprehensive Search bar check
1752
+ // Straightforward keyword search
1719
1753
  if (logSearch && logSearch.trim().length > 0) {
1720
1754
  const queryTokens = logSearch.trim().toLowerCase().split(/\s+/).filter(Boolean);
1721
1755
  result = result.filter(log => {
@@ -1724,37 +1758,32 @@ const NetworkInspector = ({
1724
1758
  log.caller || '',
1725
1759
  log.type || '',
1726
1760
  log.sourceMethod || '',
1761
+ log.stack || '',
1727
1762
  ].join(' ').toLowerCase();
1728
1763
 
1729
1764
  return queryTokens.every(token => {
1730
- if (token.startsWith('level:') || token.startsWith('is:') || token.startsWith('type:')) {
1731
- const flag = token.replace(/^(level:|is:|type:)/, '').trim();
1732
- if (flag === 'error' || flag === 'err') return log.type === 'error';
1733
- if (flag === 'warn' || flag === 'warning') return log.type === 'warn';
1734
- if (flag === 'info') return log.type === 'info';
1735
- if (flag === 'log') return log.sourceMethod === 'log';
1736
- if (flag === 'analytics') return (log.message || '').toLowerCase().includes('[analytics');
1737
- }
1738
1765
  if (token === 'error' || token === 'err') {
1739
1766
  return log.type === 'error' || searchTarget.includes(token);
1740
1767
  }
1741
1768
  if (token === 'warn' || token === 'warning') {
1742
1769
  return log.type === 'warn' || searchTarget.includes(token);
1743
1770
  }
1771
+ if (token === 'info') {
1772
+ return log.type === 'info' || searchTarget.includes(token);
1773
+ }
1744
1774
  return searchTarget.includes(token);
1745
1775
  });
1746
1776
  });
1747
1777
  }
1748
1778
 
1749
- // #7 — apply sort order (newest/oldest first)
1779
+ // Apply sort order (newest/oldest first)
1750
1780
  result = [...result].sort((a, b) =>
1751
1781
  logSortOrder === 'newest'
1752
1782
  ? b.timestamp - a.timestamp
1753
1783
  : a.timestamp - b.timestamp,
1754
1784
  );
1755
1785
 
1756
- // #9 — collapse consecutive identical messages into one row with a ×N
1757
- // counter unless duplicates are explicitly enabled in Settings.
1786
+ // Collapse consecutive identical messages into one row with a ×N counter unless duplicates are explicitly enabled
1758
1787
  if (!showDuplicateLogs) {
1759
1788
  const collapsed: ConsoleLog[] = [];
1760
1789
  for (const log of result) {
@@ -1795,9 +1824,21 @@ const NetworkInspector = ({
1795
1824
  log.caller || '',
1796
1825
  log.type || '',
1797
1826
  log.sourceMethod || '',
1827
+ log.stack || '',
1798
1828
  ].join(' ').toLowerCase();
1799
1829
 
1800
- return queryTokens.every(token => searchTarget.includes(token));
1830
+ return queryTokens.every(token => {
1831
+ if (token === 'error' || token === 'err') {
1832
+ return log.type === 'error' || searchTarget.includes(token);
1833
+ }
1834
+ if (token === 'warn' || token === 'warning') {
1835
+ return log.type === 'warn' || searchTarget.includes(token);
1836
+ }
1837
+ if (token === 'info') {
1838
+ return log.type === 'info' || searchTarget.includes(token);
1839
+ }
1840
+ return searchTarget.includes(token);
1841
+ });
1801
1842
  });
1802
1843
  }
1803
1844
 
@@ -1820,14 +1861,15 @@ const NetworkInspector = ({
1820
1861
  }, [visibleConsoleLogs, logSearch]);
1821
1862
 
1822
1863
  function closeModal() {
1823
- animateNextLayout();
1824
1864
  setVisible(false);
1825
- setSelected(null);
1826
- setSelectedEvent(null);
1827
- setSelectedLog(null);
1828
- setSelectedReduxSlice(null);
1829
- setSelectedReduxAction(null);
1830
- setSelectedCrash(null);
1865
+ setTimeout(() => {
1866
+ setSelected(null);
1867
+ setSelectedEvent(null);
1868
+ setSelectedLog(null);
1869
+ setSelectedReduxSlice(null);
1870
+ setSelectedReduxAction(null);
1871
+ setSelectedCrash(null);
1872
+ }, 300);
1831
1873
  }
1832
1874
 
1833
1875
  function handleClearAll() {
@@ -1838,15 +1880,19 @@ const NetworkInspector = ({
1838
1880
  setCollapsedSections(new Set());
1839
1881
  setStatusFilters(new Set());
1840
1882
  setMethodFilters(new Set());
1883
+ setSearch('');
1841
1884
  prevLogIdsRef.current = new Set();
1842
1885
  logRouteMapRef.current = new Map();
1843
1886
  // Also clear analytics
1844
1887
  clearAnalyticsEvents();
1845
1888
  setAnalyticsEvents([]);
1889
+ setAnalyticsSearch('');
1846
1890
  prevEventIdsRef.current = new Set();
1847
1891
  // Also clear console logs
1848
1892
  clearConsoleLogs();
1849
1893
  setConsoleLogs([]);
1894
+ setLogFilters(new Set(['all']));
1895
+ setLogSearch('');
1850
1896
  }
1851
1897
 
1852
1898
  function handleDelete() {
@@ -1983,195 +2029,307 @@ const NetworkInspector = ({
1983
2029
  });
1984
2030
  }, []);
1985
2031
 
1986
- const contextValue: InspectorContextValue = {
1987
- // ─── Modal / launcher ───────────────────────────────────────────────
1988
- visible,
1989
- setVisible,
1990
- closeModal,
1991
- isReady,
1992
- enabled,
1993
- isEnabled: enabled,
1994
- appIcon,
1995
- environment,
1996
- modalHeightPercent,
1997
- setModalHeightPercent,
1998
- modalAnimationType,
1999
- setModalAnimationType,
2000
- hasNavigationContext,
2001
- setNavState,
2002
-
2003
- // ─── Tabs ───────────────────────────────────────────────────────────
2004
- activeTab,
2005
- switchActiveTab,
2006
- tabVisibility,
2007
- toggleTabVisibility,
2008
- lastReadApisCount,
2009
- lastReadLogsCount,
2010
-
2011
- // ─── Selection / header state ───────────────────────────────────────
2012
- selected,
2013
- setSelected,
2014
- selectedEvent,
2015
- setSelectedEvent,
2016
- selectedLog,
2017
- setSelectedLog,
2018
- showHeaderInfo,
2019
- setShowHeaderInfo,
2020
- settingsPage,
2021
- setSettingsPage,
2022
- updateAvailable,
2023
- latestNpmVersion,
2024
- clearAnim,
2025
- activePulseAnim,
2026
- unreadPulseAnim,
2027
- runClearAllWithAnimation,
2028
-
2029
- // ─── FAB / launcher ─────────────────────────────────────────────────
2030
- useNativeFab,
2031
- fabPan,
2032
- fabPanResponder,
2033
- fabDraggedRef,
2034
- pulseAnim,
2035
- fabShineAnim,
2032
+ const contextValue: InspectorContextValue = useMemo(
2033
+ () => ({
2034
+ // ─── Modal / launcher ───────────────────────────────────────────────
2035
+ visible,
2036
+ setVisible,
2037
+ closeModal,
2038
+ isReady,
2039
+ enabled,
2040
+ isEnabled: enabled,
2041
+ appIcon,
2042
+ environment,
2043
+ modalHeightPercent,
2044
+ setModalHeightPercent,
2045
+ modalAnimationType,
2046
+ setModalAnimationType,
2047
+ hasNavigationContext,
2048
+ setNavState,
2036
2049
 
2037
- // ─── Network (APIs) ─────────────────────────────────────────────────
2038
- logs,
2039
- filteredLogs,
2040
- groupedData,
2041
- search,
2042
- setSearch,
2043
- searchScope,
2044
- setSearchScope,
2045
- isRegexSearch,
2046
- setIsRegexSearch,
2047
- isCaseSensitive,
2048
- setIsCaseSensitive,
2049
- quickFilter,
2050
- setQuickFilter,
2051
- statusFilters,
2052
- setStatusFilters,
2053
- methodFilters,
2054
- setMethodFilters,
2055
- availableMethods,
2056
- sortOrder,
2057
- setSortOrder,
2058
- selectedLogs,
2059
- toggleSelect,
2060
- minStart,
2061
- totalRange,
2062
- newLogIds,
2063
- toggleSectionFilter,
2064
- toggleSectionCollapse,
2065
- handleDelete,
2066
- isNetworkPaused,
2067
- setIsNetworkPaused,
2068
-
2069
- // ─── Network detail ─────────────────────────────────────────────────
2070
- detailTitle,
2071
- detailDisplayUrl,
2072
- apiDetailActiveTab,
2073
- setApiDetailActiveTab,
2074
- detailSearch,
2075
- setDetailSearch,
2076
- reqExpanded,
2077
- setReqExpanded,
2078
- resExpanded,
2079
- setResExpanded,
2080
- showReqDiff,
2081
- setShowReqDiff,
2082
- showResDiff,
2083
- setShowResDiff,
2084
- prevRequestData,
2085
- prevResponseData,
2086
- logRouteMapRef,
2087
-
2088
- // ─── Console (Logs) ─────────────────────────────────────────────────
2089
- consoleLogs,
2090
- visibleConsoleLogs,
2091
- filteredConsoleLogs,
2092
- logSearch,
2093
- setLogSearch,
2094
- logFilters,
2095
- setLogFilters,
2096
- logCounts,
2097
- logSortOrder,
2098
- setLogSortOrder,
2099
- isConsolePaused,
2100
- setIsConsolePaused,
2101
-
2102
- // ─── Analytics ──────────────────────────────────────────────────────
2103
- analyticsEvents,
2104
- filteredAnalyticsEvents,
2105
- analyticsSearch,
2106
- setAnalyticsSearch,
2107
- analyticsFilters,
2108
- setAnalyticsFilters,
2109
- isAnalyticsFilterApplied,
2110
- resetAnalyticsFilters,
2111
- newEventIds,
2112
- isAnalyticsLayoutReady,
2113
- setIsAnalyticsLayoutReady,
2114
- analyticsHeaderExpanded,
2115
- setAnalyticsHeaderExpanded,
2116
- isAnalyticsPaused,
2117
- setIsAnalyticsPaused,
2118
-
2119
- // ─── Redux ──────────────────────────────────────────────────────────
2120
- reduxState,
2121
- setReduxState,
2122
- reduxLastActionMap,
2123
- reduxSearch,
2124
- setReduxSearch,
2125
- selectedReduxSlice,
2126
- setSelectedReduxSlice,
2127
- selectedReduxAction,
2128
- setSelectedReduxAction,
2129
- reduxActiveSubTab,
2130
- setReduxActiveSubTab,
2131
-
2132
- // ─── Crash ───────────────────────────────────────────────────────────
2133
- crashRecords,
2134
- setCrashRecords,
2135
- selectedCrash,
2136
- setSelectedCrash,
2137
- lastReadCrashesCount,
2138
- maxCrashLogs,
2139
- setMaxCrashLogs,
2140
- clearAllCrashes: () => {
2141
- clearCrashRecords();
2142
- setCrashRecords([]);
2143
- setSelectedCrash(null);
2144
- },
2050
+ // ─── Tabs ───────────────────────────────────────────────────────────
2051
+ activeTab,
2052
+ switchActiveTab,
2053
+ tabVisibility,
2054
+ toggleTabVisibility,
2055
+ lastReadApisCount,
2056
+ lastReadLogsCount,
2057
+
2058
+ // ─── Selection / header state ───────────────────────────────────────
2059
+ selected,
2060
+ setSelected,
2061
+ selectedEvent,
2062
+ setSelectedEvent,
2063
+ selectedLog,
2064
+ setSelectedLog,
2065
+ showHeaderInfo,
2066
+ setShowHeaderInfo,
2067
+ settingsPage,
2068
+ setSettingsPage,
2069
+ isFeedbackOpen,
2070
+ setIsFeedbackOpen,
2071
+ updateAvailable,
2072
+ latestNpmVersion,
2073
+ clearAnim,
2074
+ activePulseAnim,
2075
+ unreadPulseAnim,
2076
+ runClearAllWithAnimation,
2077
+
2078
+ // ─── FAB / launcher ─────────────────────────────────────────────────
2079
+ useNativeFab,
2080
+ fabPan,
2081
+ fabPanResponder,
2082
+ fabDraggedRef,
2083
+ pulseAnim,
2084
+ fabShineAnim,
2085
+
2086
+ // ─── Network (APIs) ─────────────────────────────────────────────────
2087
+ logs,
2088
+ filteredLogs,
2089
+ groupedData,
2090
+ search,
2091
+ setSearch,
2092
+ searchScope,
2093
+ setSearchScope,
2094
+ isRegexSearch,
2095
+ setIsRegexSearch,
2096
+ isCaseSensitive,
2097
+ setIsCaseSensitive,
2098
+ quickFilter,
2099
+ setQuickFilter,
2100
+ statusFilters,
2101
+ setStatusFilters,
2102
+ methodFilters,
2103
+ setMethodFilters,
2104
+ availableMethods,
2105
+ sortOrder,
2106
+ setSortOrder,
2107
+ selectedLogs,
2108
+ toggleSelect,
2109
+ minStart,
2110
+ totalRange,
2111
+ newLogIds,
2112
+ toggleSectionFilter,
2113
+ toggleSectionCollapse,
2114
+ handleDelete,
2115
+ isNetworkPaused,
2116
+ setIsNetworkPaused,
2117
+
2118
+ // ─── Network detail ─────────────────────────────────────────────────
2119
+ detailTitle,
2120
+ detailDisplayUrl,
2121
+ apiDetailActiveTab,
2122
+ setApiDetailActiveTab,
2123
+ detailSearch,
2124
+ setDetailSearch,
2125
+ reqExpanded,
2126
+ setReqExpanded,
2127
+ resExpanded,
2128
+ setResExpanded,
2129
+ showReqDiff,
2130
+ setShowReqDiff,
2131
+ showResDiff,
2132
+ setShowResDiff,
2133
+ prevRequestData,
2134
+ prevResponseData,
2135
+ logRouteMapRef,
2136
+
2137
+ // ─── Console (Logs) ─────────────────────────────────────────────────
2138
+ consoleLogs,
2139
+ visibleConsoleLogs,
2140
+ filteredConsoleLogs,
2141
+ logSearch,
2142
+ setLogSearch,
2143
+ logFilters,
2144
+ setLogFilters,
2145
+ logCounts,
2146
+ logSortOrder,
2147
+ setLogSortOrder,
2148
+ isConsolePaused,
2149
+ setIsConsolePaused,
2150
+
2151
+ // ─── Analytics ──────────────────────────────────────────────────────
2152
+ analyticsEvents,
2153
+ filteredAnalyticsEvents,
2154
+ analyticsSearch,
2155
+ setAnalyticsSearch,
2156
+ analyticsFilters,
2157
+ setAnalyticsFilters,
2158
+ isAnalyticsFilterApplied,
2159
+ resetAnalyticsFilters,
2160
+ newEventIds,
2161
+ isAnalyticsLayoutReady,
2162
+ setIsAnalyticsLayoutReady,
2163
+ analyticsHeaderExpanded,
2164
+ setAnalyticsHeaderExpanded,
2165
+ isAnalyticsPaused,
2166
+ setIsAnalyticsPaused,
2167
+
2168
+ // ─── Redux ──────────────────────────────────────────────────────────
2169
+ reduxState,
2170
+ setReduxState,
2171
+ reduxLastActionMap,
2172
+ reduxSearch,
2173
+ setReduxSearch,
2174
+ selectedReduxSlice,
2175
+ setSelectedReduxSlice,
2176
+ selectedReduxAction,
2177
+ setSelectedReduxAction,
2178
+ reduxActiveSubTab,
2179
+ setReduxActiveSubTab,
2180
+
2181
+ // ─── Crash ───────────────────────────────────────────────────────────
2182
+ crashRecords,
2183
+ setCrashRecords,
2184
+ selectedCrash,
2185
+ setSelectedCrash,
2186
+ lastReadCrashesCount,
2187
+ maxCrashLogs,
2188
+ setMaxCrashLogs,
2189
+ clearAllCrashes: () => {
2190
+ clearCrashRecords();
2191
+ setCrashRecords([]);
2192
+ setSelectedCrash(null);
2193
+ },
2145
2194
 
2146
- // ─── Settings ───────────────────────────────────────────────────────
2147
- settingsActiveSubTab,
2148
- setSettingsActiveSubTab,
2149
- defaultTab,
2150
- setDefaultTab,
2151
- isDark,
2152
- setIsDark,
2153
- showDuplicateLogs,
2154
- setShowDuplicateLogs,
2155
- showUpdateToast,
2156
- setShowUpdateToast,
2157
- showConsoleLevels,
2158
- setShowConsoleLevels,
2159
- resetToDefaults,
2160
- storage,
2161
- maxNetworkLogs,
2162
- setMaxNetworkLogs,
2163
- maxConsoleLogs,
2164
- setMaxConsoleLogs,
2165
- maxAnalyticsEventsLimit,
2166
- setMaxAnalyticsEventsLimit,
2167
- isAutoRamLimitEnabled,
2168
- setIsAutoRamLimitEnabled,
2169
- deviceFreeRamMb,
2170
- reduxAutoRefresh,
2171
- setReduxAutoRefreshState,
2172
- reduxExpandDepth,
2173
- setReduxExpandDepth,
2174
- };
2195
+ // ─── Settings ───────────────────────────────────────────────────────
2196
+ settingsActiveSubTab,
2197
+ setSettingsActiveSubTab,
2198
+ defaultTab,
2199
+ setDefaultTab,
2200
+ isDark,
2201
+ setIsDark,
2202
+ showDuplicateLogs,
2203
+ setShowDuplicateLogs,
2204
+ showUpdateToast,
2205
+ setShowUpdateToast,
2206
+ showConsoleLevels,
2207
+ setShowConsoleLevels,
2208
+ resetToDefaults,
2209
+ storage,
2210
+ maxNetworkLogs,
2211
+ setMaxNetworkLogs,
2212
+ maxConsoleLogs,
2213
+ setMaxConsoleLogs,
2214
+ maxAnalyticsEventsLimit,
2215
+ setMaxAnalyticsEventsLimit,
2216
+ isAutoRamLimitEnabled,
2217
+ setIsAutoRamLimitEnabled,
2218
+ deviceFreeRamMb,
2219
+ reduxAutoRefresh,
2220
+ setReduxAutoRefreshState,
2221
+ reduxExpandDepth,
2222
+ setReduxExpandDepth,
2223
+ }),
2224
+ [
2225
+ visible,
2226
+ closeModal,
2227
+ isReady,
2228
+ enabled,
2229
+ appIcon,
2230
+ environment,
2231
+ modalHeightPercent,
2232
+ modalAnimationType,
2233
+ hasNavigationContext,
2234
+ setNavState,
2235
+ activeTab,
2236
+ switchActiveTab,
2237
+ tabVisibility,
2238
+ toggleTabVisibility,
2239
+ lastReadApisCount,
2240
+ lastReadLogsCount,
2241
+ selected,
2242
+ selectedEvent,
2243
+ selectedLog,
2244
+ showHeaderInfo,
2245
+ settingsPage,
2246
+ isFeedbackOpen,
2247
+ updateAvailable,
2248
+ latestNpmVersion,
2249
+ clearAnim,
2250
+ activePulseAnim,
2251
+ unreadPulseAnim,
2252
+ runClearAllWithAnimation,
2253
+ useNativeFab,
2254
+ fabPan,
2255
+ fabPanResponder,
2256
+ pulseAnim,
2257
+ fabShineAnim,
2258
+ logs,
2259
+ filteredLogs,
2260
+ groupedData,
2261
+ search,
2262
+ searchScope,
2263
+ isRegexSearch,
2264
+ isCaseSensitive,
2265
+ quickFilter,
2266
+ statusFilters,
2267
+ methodFilters,
2268
+ availableMethods,
2269
+ sortOrder,
2270
+ selectedLogs,
2271
+ toggleSelect,
2272
+ minStart,
2273
+ totalRange,
2274
+ newLogIds,
2275
+ toggleSectionFilter,
2276
+ toggleSectionCollapse,
2277
+ handleDelete,
2278
+ isNetworkPaused,
2279
+ detailTitle,
2280
+ detailDisplayUrl,
2281
+ apiDetailActiveTab,
2282
+ detailSearch,
2283
+ reqExpanded,
2284
+ resExpanded,
2285
+ showReqDiff,
2286
+ showResDiff,
2287
+ prevRequestData,
2288
+ prevResponseData,
2289
+ consoleLogs,
2290
+ visibleConsoleLogs,
2291
+ filteredConsoleLogs,
2292
+ logSearch,
2293
+ logFilters,
2294
+ logCounts,
2295
+ logSortOrder,
2296
+ isConsolePaused,
2297
+ analyticsEvents,
2298
+ filteredAnalyticsEvents,
2299
+ analyticsSearch,
2300
+ analyticsFilters,
2301
+ isAnalyticsFilterApplied,
2302
+ resetAnalyticsFilters,
2303
+ newEventIds,
2304
+ isAnalyticsLayoutReady,
2305
+ analyticsHeaderExpanded,
2306
+ isAnalyticsPaused,
2307
+ reduxState,
2308
+ reduxLastActionMap,
2309
+ reduxSearch,
2310
+ selectedReduxSlice,
2311
+ selectedReduxAction,
2312
+ reduxActiveSubTab,
2313
+ crashRecords,
2314
+ selectedCrash,
2315
+ lastReadCrashesCount,
2316
+ maxCrashLogs,
2317
+ settingsActiveSubTab,
2318
+ defaultTab,
2319
+ isDark,
2320
+ showDuplicateLogs,
2321
+ showUpdateToast,
2322
+ showConsoleLevels,
2323
+ storage,
2324
+ maxNetworkLogs,
2325
+ maxConsoleLogs,
2326
+ maxAnalyticsEventsLimit,
2327
+ isAutoRamLimitEnabled,
2328
+ deviceFreeRamMb,
2329
+ reduxAutoRefresh,
2330
+ reduxExpandDepth,
2331
+ ],
2332
+ );
2175
2333
 
2176
2334
  return (
2177
2335
  <InspectorContext.Provider value={contextValue}>
@@ -2441,4 +2599,9 @@ export {
2441
2599
  I18nextProvider,
2442
2600
  } from './i18n';
2443
2601
 
2602
+ export {
2603
+ fetchRemoteConfigModuleStatus,
2604
+ isFirebaseRemoteConfigAvailable,
2605
+ } from './helpers/remoteConfig';
2606
+
2444
2607
  export { LIB_VERSION } from './constants/version';