react-native-inapp-inspector 2.2.2 → 2.2.4

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 (159) hide show
  1. package/dist/commonjs/components/AnalyticsDetail.js +5 -1
  2. package/dist/commonjs/components/AnalyticsEventCard.js +2 -1
  3. package/dist/commonjs/components/DiffViewer.js +1 -1
  4. package/dist/commonjs/components/Inspector/BundleTab.js +22 -0
  5. package/dist/commonjs/components/Inspector/DeviceInfoTab.d.ts +3 -0
  6. package/dist/commonjs/components/Inspector/DeviceInfoTab.js +835 -0
  7. package/dist/commonjs/components/Inspector/InspectorHeader.js +12 -14
  8. package/dist/commonjs/components/Inspector/LogDetail.js +6 -3
  9. package/dist/commonjs/components/Inspector/MainScreen.js +7 -3
  10. package/dist/commonjs/components/Inspector/NetworkTab.js +92 -15
  11. package/dist/commonjs/components/Inspector/PerformanceTab.js +38 -12
  12. package/dist/commonjs/components/Inspector/SettingsPanel.js +440 -229
  13. package/dist/commonjs/components/Inspector/StorageTab.d.ts +3 -0
  14. package/dist/commonjs/components/Inspector/StorageTab.js +892 -0
  15. package/dist/commonjs/components/Inspector/TabBar.js +14 -0
  16. package/dist/commonjs/components/Inspector/TelemetryConsentModal.js +11 -2
  17. package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +4 -1
  18. package/dist/commonjs/components/NetworkIcons.d.ts +6 -0
  19. package/dist/commonjs/components/NetworkIcons.js +30 -1
  20. package/dist/commonjs/constants/version.d.ts +1 -1
  21. package/dist/commonjs/constants/version.js +1 -1
  22. package/dist/commonjs/customHooks/bundleAnalyzer.js +44 -22
  23. package/dist/commonjs/customHooks/storageInspector.d.ts +67 -0
  24. package/dist/commonjs/customHooks/storageInspector.js +486 -0
  25. package/dist/commonjs/i18n/locales/en.json +8 -2
  26. package/dist/commonjs/index.d.ts +1 -0
  27. package/dist/commonjs/index.js +16 -1
  28. package/dist/commonjs/storage.d.ts +5 -0
  29. package/dist/commonjs/storage.js +18 -0
  30. package/dist/commonjs/types/enums.d.ts +5 -0
  31. package/dist/commonjs/types/enums.js +5 -0
  32. package/dist/esm/components/AnalyticsDetail.js +6 -2
  33. package/dist/esm/components/AnalyticsEventCard.js +2 -1
  34. package/dist/esm/components/DiffViewer.js +1 -1
  35. package/dist/esm/components/Inspector/BundleTab.js +22 -0
  36. package/dist/esm/components/Inspector/DeviceInfoTab.d.ts +3 -0
  37. package/dist/esm/components/Inspector/DeviceInfoTab.js +796 -0
  38. package/dist/esm/components/Inspector/InspectorHeader.js +13 -15
  39. package/dist/esm/components/Inspector/LogDetail.js +7 -4
  40. package/dist/esm/components/Inspector/MainScreen.js +7 -3
  41. package/dist/esm/components/Inspector/NetworkTab.js +93 -16
  42. package/dist/esm/components/Inspector/PerformanceTab.js +39 -13
  43. package/dist/esm/components/Inspector/SettingsPanel.js +441 -230
  44. package/dist/esm/components/Inspector/StorageTab.d.ts +3 -0
  45. package/dist/esm/components/Inspector/StorageTab.js +853 -0
  46. package/dist/esm/components/Inspector/TabBar.js +15 -1
  47. package/dist/esm/components/Inspector/TelemetryConsentModal.js +11 -2
  48. package/dist/esm/components/Inspector/UpdateAvailableModal.js +4 -1
  49. package/dist/esm/components/NetworkIcons.d.ts +6 -0
  50. package/dist/esm/components/NetworkIcons.js +23 -0
  51. package/dist/esm/constants/version.d.ts +1 -1
  52. package/dist/esm/constants/version.js +1 -1
  53. package/dist/esm/customHooks/bundleAnalyzer.js +44 -22
  54. package/dist/esm/customHooks/storageInspector.d.ts +67 -0
  55. package/dist/esm/customHooks/storageInspector.js +469 -0
  56. package/dist/esm/i18n/locales/en.json +8 -2
  57. package/dist/esm/index.d.ts +1 -0
  58. package/dist/esm/index.js +5 -0
  59. package/dist/esm/storage.d.ts +5 -0
  60. package/dist/esm/storage.js +5 -0
  61. package/dist/esm/types/enums.d.ts +5 -0
  62. package/dist/esm/types/enums.js +5 -0
  63. package/package.json +9 -1
  64. package/src/analytics.ts +35 -0
  65. package/src/bundle.ts +25 -0
  66. package/src/components/AnalyticsDetail.tsx +870 -0
  67. package/src/components/AnalyticsEventCard.tsx +442 -0
  68. package/src/components/AnalyticsGraph.tsx +583 -0
  69. package/src/components/AnimatedEntrance.tsx +64 -0
  70. package/src/components/AppHeaderLogo.tsx +109 -0
  71. package/src/components/BrandCircleIcon.tsx +144 -0
  72. package/src/components/BrandSquareIcon.tsx +144 -0
  73. package/src/components/CodeSnippet.tsx +725 -0
  74. package/src/components/ConsoleLogCard.tsx +628 -0
  75. package/src/components/CopyButton.tsx +87 -0
  76. package/src/components/DiffViewer.tsx +82 -0
  77. package/src/components/DomainHeader.tsx +237 -0
  78. package/src/components/EmptyState.tsx +73 -0
  79. package/src/components/EndOfListFooter.tsx +100 -0
  80. package/src/components/ErrorBoundary.tsx +688 -0
  81. package/src/components/HeadersSection.tsx +192 -0
  82. package/src/components/HighlightText.tsx +100 -0
  83. package/src/components/Inspector/AnalyticsFilterModal.tsx +1250 -0
  84. package/src/components/Inspector/AnalyticsTab.tsx +1336 -0
  85. package/src/components/Inspector/BundleTab.tsx +4760 -0
  86. package/src/components/Inspector/ConsoleTab.tsx +702 -0
  87. package/src/components/Inspector/CrashDetail.tsx +941 -0
  88. package/src/components/Inspector/CrashFilterModal.tsx +721 -0
  89. package/src/components/Inspector/CrashTab.tsx +871 -0
  90. package/src/components/Inspector/DeviceInfoTab.tsx +1204 -0
  91. package/src/components/Inspector/FabLauncher.tsx +80 -0
  92. package/src/components/Inspector/InspectorContext.tsx +28 -0
  93. package/src/components/Inspector/InspectorHeader.tsx +972 -0
  94. package/src/components/Inspector/LogDetail.tsx +1431 -0
  95. package/src/components/Inspector/MainScreen.tsx +262 -0
  96. package/src/components/Inspector/NavigationTracker.tsx +13 -0
  97. package/src/components/Inspector/NetworkDetail.tsx +794 -0
  98. package/src/components/Inspector/NetworkTab.tsx +1183 -0
  99. package/src/components/Inspector/NpmUpdateToast.tsx +392 -0
  100. package/src/components/Inspector/PerformanceTab.tsx +1928 -0
  101. package/src/components/Inspector/ReduxDetail.tsx +1651 -0
  102. package/src/components/Inspector/ReduxTab.tsx +954 -0
  103. package/src/components/Inspector/SettingsPanel.tsx +3447 -0
  104. package/src/components/Inspector/StorageTab.tsx +1048 -0
  105. package/src/components/Inspector/TabBar.tsx +207 -0
  106. package/src/components/Inspector/TelemetryConsentModal.tsx +416 -0
  107. package/src/components/Inspector/UpdateAvailableModal.tsx +557 -0
  108. package/src/components/JsonViewer.tsx +486 -0
  109. package/src/components/LogCard.tsx +491 -0
  110. package/src/components/LogSyntaxHighlighter.tsx +178 -0
  111. package/src/components/MetaAccordion.tsx +340 -0
  112. package/src/components/MiniBarChart.tsx +42 -0
  113. package/src/components/MiniLineChart.tsx +33 -0
  114. package/src/components/NetworkIcons.tsx +2221 -0
  115. package/src/components/SectionHeader.tsx +113 -0
  116. package/src/components/SegmentedTabs.tsx +83 -0
  117. package/src/components/Slider.tsx +300 -0
  118. package/src/components/SourcePageCard.tsx +148 -0
  119. package/src/components/Toast.tsx +131 -0
  120. package/src/components/TouchableScale.tsx +91 -0
  121. package/src/components/TreeNode.tsx +186 -0
  122. package/src/console.ts +24 -0
  123. package/src/constants/index.ts +38 -0
  124. package/src/constants/version.ts +3 -0
  125. package/src/crash.ts +32 -0
  126. package/src/customHooks/analyticsLogger.ts +336 -0
  127. package/src/customHooks/bundleAnalyzer.ts +1256 -0
  128. package/src/customHooks/consoleLogger.ts +497 -0
  129. package/src/customHooks/crashHandler.ts +944 -0
  130. package/src/customHooks/logFilters.ts +32 -0
  131. package/src/customHooks/networkLogger.ts +419 -0
  132. package/src/customHooks/performanceTracker.ts +1014 -0
  133. package/src/customHooks/reduxLogger.ts +406 -0
  134. package/src/customHooks/storageInspector.ts +509 -0
  135. package/src/customHooks/useAccordion.tsx +60 -0
  136. package/src/decorators/index.ts +184 -0
  137. package/src/helpers/gaAnalyticsRegistry.ts +204 -0
  138. package/src/helpers/index.ts +860 -0
  139. package/src/helpers/memoryManager.ts +138 -0
  140. package/src/helpers/searchQueryParser.ts +283 -0
  141. package/src/helpers/settingsStore.ts +171 -0
  142. package/src/helpers/telemetry.ts +505 -0
  143. package/src/helpers/toast.ts +17 -0
  144. package/src/i18n/index.ts +69 -0
  145. package/src/i18n/locales/en.json +1058 -0
  146. package/src/index.tsx +2356 -0
  147. package/src/native/NativeInspector.ts +397 -0
  148. package/src/native/NativeNetworkInspector.ts +24 -0
  149. package/src/network.ts +22 -0
  150. package/src/performance.ts +38 -0
  151. package/src/redux.ts +23 -0
  152. package/src/storage.ts +18 -0
  153. package/src/styles/AppColors.ts +408 -0
  154. package/src/styles/AppFonts.ts +8 -0
  155. package/src/styles/common.ts +209 -0
  156. package/src/styles/index.ts +1570 -0
  157. package/src/types/enums.ts +199 -0
  158. package/src/types/index.ts +34 -0
  159. package/src/types/interfaces.ts +515 -0
@@ -0,0 +1,262 @@
1
+ import React, {useState, useEffect, useRef} from 'react';
2
+ import {
3
+ ActivityIndicator,
4
+ Animated,
5
+ Modal,
6
+ Platform,
7
+ Pressable,
8
+ StatusBar,
9
+ StyleSheet,
10
+ Text,
11
+ View,
12
+ } from 'react-native';
13
+ import {useInspector} from './InspectorContext';
14
+ import ErrorBoundary from '../ErrorBoundary';
15
+ import FabLauncher from './FabLauncher';
16
+ import InspectorHeader from './InspectorHeader';
17
+ import TabBar from './TabBar';
18
+ import NetworkTab from './NetworkTab';
19
+ import NetworkDetail from './NetworkDetail';
20
+ import LogDetail from './LogDetail';
21
+ import ConsoleTab from './ConsoleTab';
22
+ import AnalyticsTab from './AnalyticsTab';
23
+ import AnalyticsDetail from '../AnalyticsDetail';
24
+ import ReduxTab from './ReduxTab';
25
+ import ReduxDetail from './ReduxDetail';
26
+ import BundleTab from './BundleTab';
27
+ import PerformanceTab from './PerformanceTab';
28
+ import CrashTab from './CrashTab';
29
+ import CrashDetail from './CrashDetail';
30
+ import DeviceInfoTab from './DeviceInfoTab';
31
+ import StorageTab from './StorageTab';
32
+ import SettingsPanel from './SettingsPanel';
33
+ import TelemetryConsentModal from './TelemetryConsentModal';
34
+ import NpmUpdateToast from './NpmUpdateToast';
35
+ import Toast from '../Toast';
36
+ import styles from '../../styles';
37
+ import {AppColors} from '../../styles/AppColors';
38
+ import NavigationTracker from './NavigationTracker';
39
+
40
+ const MainScreen = () => {
41
+ const {
42
+ visible,
43
+ modalAnimationType,
44
+ closeModal,
45
+ modalHeightPercent,
46
+ selected,
47
+ selectedEvent,
48
+ selectedLog,
49
+ selectedReduxSlice,
50
+ selectedReduxAction,
51
+ selectedCrash,
52
+ settingsPage,
53
+ activeTab,
54
+ isReady,
55
+ isEnabled,
56
+ useNativeFab,
57
+ hasNavigationContext,
58
+ setNavState,
59
+ } = useInspector();
60
+
61
+ const isDetailActive =
62
+ (activeTab === 'apis' && selected != null) ||
63
+ (activeTab === 'analytics' && selectedEvent != null) ||
64
+ (activeTab === 'logs' && selectedLog != null) ||
65
+ (activeTab === 'redux' && (selectedReduxSlice != null || selectedReduxAction != null)) ||
66
+ (activeTab === 'crash' && selectedCrash != null);
67
+
68
+ // ─── 60 FPS Transition Animations ──────────────────────────────────────────
69
+ const detailAnim = useRef(new Animated.Value(0)).current;
70
+ useEffect(() => {
71
+ if (isDetailActive) {
72
+ detailAnim.setValue(0);
73
+ Animated.spring(detailAnim, {
74
+ toValue: 1,
75
+ friction: 8,
76
+ tension: 65,
77
+ useNativeDriver: true,
78
+ }).start();
79
+ }
80
+ }, [isDetailActive]);
81
+
82
+ const settingsAnim = useRef(new Animated.Value(0)).current;
83
+ useEffect(() => {
84
+ if (settingsPage !== null) {
85
+ settingsAnim.setValue(0);
86
+ Animated.spring(settingsAnim, {
87
+ toValue: 1,
88
+ friction: 8,
89
+ tension: 65,
90
+ useNativeDriver: true,
91
+ }).start();
92
+ }
93
+ }, [settingsPage !== null]);
94
+
95
+ const tabAnim = useRef(new Animated.Value(1)).current;
96
+ useEffect(() => {
97
+ tabAnim.setValue(0);
98
+ Animated.timing(tabAnim, {
99
+ toValue: 1,
100
+ duration: 150,
101
+ useNativeDriver: true,
102
+ }).start();
103
+ }, [activeTab]);
104
+
105
+ return (
106
+ <>
107
+ {(Platform.OS === 'ios' || Platform.OS === 'android') &&
108
+ isEnabled &&
109
+ !visible &&
110
+ !useNativeFab && <FabLauncher />}
111
+ <Modal
112
+ visible={visible}
113
+ animationType={modalAnimationType}
114
+ transparent
115
+ statusBarTranslucent={true}>
116
+ {visible && (
117
+ <ErrorBoundary onClose={closeModal}>
118
+ <View style={styles.modalBackdrop}>
119
+ <Pressable
120
+ style={styles.modalBackdropPressable}
121
+ onPress={closeModal}
122
+ />
123
+ <View
124
+ style={[
125
+ styles.modalContentCard,
126
+ {
127
+ height: `${modalHeightPercent}%`,
128
+ borderTopLeftRadius: modalHeightPercent >= 100 ? 0 : 20,
129
+ borderTopRightRadius: modalHeightPercent >= 100 ? 0 : 20,
130
+ },
131
+ ]}>
132
+ <StatusBar
133
+ translucent
134
+ backgroundColor="transparent"
135
+ barStyle="light-content"
136
+ />
137
+
138
+ <InspectorHeader />
139
+
140
+ <View style={{flex: 1}}>
141
+ {isReady ? (
142
+ <View style={{flex: 1}}>
143
+ {/* ─── Horizontal Scrollable Tab Bar inside Content ─── */}
144
+ {!isDetailActive && <TabBar />}
145
+
146
+ {/* Persistent List Layer - Never unmounted, preserves 100% native scroll with smooth tab transition */}
147
+ <Animated.View
148
+ style={[
149
+ {
150
+ flex: 1,
151
+ opacity: tabAnim,
152
+ transform: [
153
+ {
154
+ translateY: tabAnim.interpolate({
155
+ inputRange: [0, 1],
156
+ outputRange: [6, 0],
157
+ }),
158
+ },
159
+ ],
160
+ },
161
+ (isDetailActive || settingsPage !== null) && {
162
+ pointerEvents: 'none',
163
+ },
164
+ ]}>
165
+ {activeTab === 'apis' && <NetworkTab />}
166
+ {activeTab === 'logs' && <ConsoleTab />}
167
+ {activeTab === 'analytics' && <AnalyticsTab />}
168
+ {activeTab === 'redux' && <ReduxTab />}
169
+ {activeTab === 'bundle' && <BundleTab />}
170
+ {activeTab === 'performance' && <PerformanceTab />}
171
+ {activeTab === 'crash' && <CrashTab />}
172
+ {activeTab === 'device' && <DeviceInfoTab />}
173
+ {activeTab === 'storage' && <StorageTab />}
174
+ </Animated.View>
175
+
176
+ {/* Detail View Layer - Rendered on top with smooth slide & spring transition */}
177
+ {isDetailActive && (
178
+ <Animated.View
179
+ style={[
180
+ StyleSheet.absoluteFill,
181
+ {
182
+ backgroundColor: AppColors.contentBg,
183
+ opacity: detailAnim,
184
+ transform: [
185
+ {
186
+ translateX: detailAnim.interpolate({
187
+ inputRange: [0, 1],
188
+ outputRange: [32, 0],
189
+ }),
190
+ },
191
+ ],
192
+ },
193
+ ]}>
194
+ {activeTab === 'apis' && selected != null && (
195
+ <NetworkDetail />
196
+ )}
197
+ {activeTab === 'analytics' && selectedEvent != null && (
198
+ <AnalyticsDetail event={selectedEvent} />
199
+ )}
200
+ {activeTab === 'logs' && selectedLog != null && (
201
+ <LogDetail />
202
+ )}
203
+ {activeTab === 'redux' && <ReduxDetail />}
204
+ {activeTab === 'crash' && selectedCrash != null && (
205
+ <CrashDetail />
206
+ )}
207
+ </Animated.View>
208
+ )}
209
+ </View>
210
+ ) : (
211
+ <View style={styles.empty}>
212
+ <ActivityIndicator size="large" color={AppColors.purple} />
213
+ <Text style={[styles.emptySub, {marginTop: 12}]}>
214
+ Loading logs...
215
+ </Text>
216
+ </View>
217
+ )}
218
+
219
+ {/* Settings Panel Layer - Rendered on top with smooth slide & spring transition */}
220
+ {settingsPage !== null && (
221
+ <Animated.View
222
+ style={[
223
+ StyleSheet.absoluteFill,
224
+ {
225
+ backgroundColor: AppColors.grayBackground,
226
+ opacity: settingsAnim,
227
+ transform: [
228
+ {
229
+ translateY: settingsAnim.interpolate({
230
+ inputRange: [0, 1],
231
+ outputRange: [24, 0],
232
+ }),
233
+ },
234
+ ],
235
+ },
236
+ ]}>
237
+ <SettingsPanel />
238
+ </Animated.View>
239
+ )}
240
+ </View>
241
+
242
+ {/* Bottom floating toast notification */}
243
+ <Toast />
244
+
245
+ {/* NPM Version Update Toast with timeout progress bar */}
246
+ <NpmUpdateToast />
247
+
248
+ {/* Anonymous Telemetry Consent Dialog shown ONLY when inspector is active */}
249
+ <TelemetryConsentModal />
250
+ </View>
251
+ </View>
252
+ </ErrorBoundary>
253
+ )}
254
+ {hasNavigationContext && (
255
+ <NavigationTracker onStateChange={setNavState} />
256
+ )}
257
+ </Modal>
258
+ </>
259
+ );
260
+ };
261
+
262
+ export default MainScreen;
@@ -0,0 +1,13 @@
1
+ import {useEffect} from 'react';
2
+ import {useNavigationState} from '@react-navigation/native';
3
+ import {NavigationTrackerProps} from '../../types';
4
+
5
+ const NavigationTracker = ({onStateChange}: NavigationTrackerProps): null => {
6
+ const navState = useNavigationState(state => state);
7
+ useEffect(() => {
8
+ onStateChange(navState);
9
+ }, [navState, onStateChange]);
10
+ return null;
11
+ };
12
+
13
+ export default NavigationTracker;