react-native-inapp-inspector 2.2.5 → 2.2.7
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/README.md +0 -10
- package/dist/commonjs/components/Inspector/InspectorHeader.js +0 -73
- package/dist/commonjs/components/Inspector/MainScreen.js +0 -4
- package/dist/commonjs/components/Inspector/SettingsPanel.js +2 -107
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/helpers/index.d.ts +0 -1
- package/dist/commonjs/helpers/index.js +0 -1
- package/dist/commonjs/index.d.ts +1 -1
- package/dist/commonjs/index.js +2 -19
- package/dist/esm/components/Inspector/InspectorHeader.js +0 -73
- package/dist/esm/components/Inspector/MainScreen.js +0 -4
- package/dist/esm/components/Inspector/SettingsPanel.js +2 -107
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/helpers/index.d.ts +0 -1
- package/dist/esm/helpers/index.js +0 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +2 -12
- package/ios/NetworkInspectorModule.mm +1 -10
- package/package.json +2 -2
- package/src/components/Inspector/InspectorHeader.tsx +0 -93
- package/src/components/Inspector/MainScreen.tsx +0 -4
- package/src/components/Inspector/SettingsPanel.tsx +2 -128
- package/src/constants/version.ts +1 -1
- package/src/helpers/index.ts +0 -1
- package/src/index.tsx +2 -24
- package/dist/commonjs/components/Inspector/TelemetryConsentModal.d.ts +0 -3
- package/dist/commonjs/components/Inspector/TelemetryConsentModal.js +0 -353
- package/dist/commonjs/helpers/telemetry.d.ts +0 -99
- package/dist/commonjs/helpers/telemetry.js +0 -398
- package/dist/esm/components/Inspector/TelemetryConsentModal.d.ts +0 -3
- package/dist/esm/components/Inspector/TelemetryConsentModal.js +0 -316
- package/dist/esm/helpers/telemetry.d.ts +0 -99
- package/dist/esm/helpers/telemetry.js +0 -380
- package/src/components/Inspector/TelemetryConsentModal.tsx +0 -357
- package/src/helpers/telemetry.ts +0 -505
package/dist/esm/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export { getEventCategory, registerGAPlugin, type GAPlugin, } from './helpers/ga
|
|
|
13
13
|
export { usePerformanceTracker, useComponentProfiler, useNavigationProfiler, trackComponentRender, trackNavigationTransition, trackHeavyTask, measureAsync, getHermesMemoryStats, registerComponentProfile, subscribeRenderProfiles, getRenderProfiles, logPerformanceEvent, clearPerformanceEvents, subscribePerformanceEvents, getPerformanceEvents, getInitialRenderProfiles, getInitialPerformanceEvents, generateFixSnippet, } from './customHooks/performanceTracker';
|
|
14
14
|
export { InspectLog, InspectTrackTime, InspectCatch, type InspectLogOptions, } from './decorators';
|
|
15
15
|
export { getNativeDeviceMetrics, enableNativeCrashProtection, subscribeNativeCrashes, showNativeFloatingButton, hideNativeFloatingButton, setNativeFloatingButtonBadge, subscribeNativeFloatingButtonPress, subscribeNativeDeviceShake, startNativeFpsMonitoring, stopNativeFpsMonitoring, getNativeFpsMetrics, getNativeStorageItem, setNativeStorageItem, isNativeModuleAvailable, type NativeDeviceMetrics, type NativeCrashEvent, type FloatingButtonOptions, type NativeFpsMetrics, } from './native/NativeInspector';
|
|
16
|
-
export {
|
|
16
|
+
export { setupMemoryWarningHandler, pruneAllLogs, subscribeMemoryWarning, type MemoryPruneSummary, } from './helpers';
|
|
17
17
|
export { setMaxNetworkLogsLimit, getMaxNetworkLogsLimit, pruneNetworkLogs, } from './customHooks/networkLogger';
|
|
18
18
|
export { setMaxConsoleLogsLimit, getMaxConsoleLogsLimit, pruneConsoleLogs, } from './customHooks/consoleLogger';
|
|
19
19
|
export { setMaxReduxHistoryLimit, getMaxReduxHistoryLimit, pruneReduxHistory, } from './customHooks/reduxLogger';
|
package/dist/esm/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import ErrorBoundary from './components/ErrorBoundary';
|
|
|
8
8
|
import MainScreen from './components/Inspector/MainScreen';
|
|
9
9
|
import { InspectorContext, animateNextLayout, } from './components/Inspector/InspectorContext';
|
|
10
10
|
// Helpers
|
|
11
|
-
import { formatDisplayUrl, getNavigationInfo, deduplicateLogs, getDomainColor, getEventCategory, matchNetworkLogQuery,
|
|
11
|
+
import { formatDisplayUrl, getNavigationInfo, deduplicateLogs, getDomainColor, getEventCategory, matchNetworkLogQuery, setupMemoryWarningHandler, } from './helpers';
|
|
12
12
|
// #5 — settings persistence
|
|
13
13
|
import { loadSettings, saveSettings, setCustomStorage, clearPersistedSettings, calculateRamBasedLimits, } from './helpers/settingsStore';
|
|
14
14
|
import { getNativeSystemMetrics, pushNativeLogRecord, fetchNativeCachedPage, } from './native/NativeInspector';
|
|
@@ -717,14 +717,6 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
717
717
|
}, [unreadPulseAnim]);
|
|
718
718
|
const isNativeModule = useMemo(() => isNativeModuleAvailable(), []);
|
|
719
719
|
const useNativeFab = (Platform.OS === 'ios' || Platform.OS === 'android') && isNativeModule;
|
|
720
|
-
// Send anonymous initialization heartbeat to GA4 Measurement Protocol
|
|
721
|
-
useEffect(() => {
|
|
722
|
-
sendSessionTelemetryPing({
|
|
723
|
-
environment,
|
|
724
|
-
hasNavigation: Boolean(navigationRef),
|
|
725
|
-
hasAppIcon: Boolean(appIcon),
|
|
726
|
-
});
|
|
727
|
-
}, [environment, navigationRef, appIcon]);
|
|
728
720
|
// 100% Native Main-Thread Floating Button Lifecycle
|
|
729
721
|
useEffect(() => {
|
|
730
722
|
if (!useNativeFab || !isEnabled || !enabled) {
|
|
@@ -779,8 +771,6 @@ const NetworkInspector = ({ enabled = true, isEnabled = true, storage, navigatio
|
|
|
779
771
|
? defaultTab
|
|
780
772
|
: 'apis';
|
|
781
773
|
setActiveTab(target);
|
|
782
|
-
// Track inspector opened event in GA4
|
|
783
|
-
trackInspectorOpen({ activeTab: target });
|
|
784
774
|
// Instant synchronization of data collected while modal was closed
|
|
785
775
|
if (latestNetworkLogsRef.current.length > 0) {
|
|
786
776
|
const deduped = deduplicateLogs(latestNetworkLogsRef.current);
|
|
@@ -1824,7 +1814,7 @@ export { getEventCategory, registerGAPlugin, } from './helpers/gaAnalyticsRegist
|
|
|
1824
1814
|
export { usePerformanceTracker, useComponentProfiler, useNavigationProfiler, trackComponentRender, trackNavigationTransition, trackHeavyTask, measureAsync, getHermesMemoryStats, registerComponentProfile, subscribeRenderProfiles, getRenderProfiles, logPerformanceEvent, clearPerformanceEvents, subscribePerformanceEvents, getPerformanceEvents, getInitialRenderProfiles, getInitialPerformanceEvents, generateFixSnippet, } from './customHooks/performanceTracker';
|
|
1825
1815
|
export { InspectLog, InspectTrackTime, InspectCatch, } from './decorators';
|
|
1826
1816
|
export { getNativeDeviceMetrics, enableNativeCrashProtection, subscribeNativeCrashes, showNativeFloatingButton, hideNativeFloatingButton, setNativeFloatingButtonBadge, subscribeNativeFloatingButtonPress, subscribeNativeDeviceShake, startNativeFpsMonitoring, stopNativeFpsMonitoring, getNativeFpsMetrics, getNativeStorageItem, setNativeStorageItem, isNativeModuleAvailable, } from './native/NativeInspector';
|
|
1827
|
-
export {
|
|
1817
|
+
export { setupMemoryWarningHandler, pruneAllLogs, subscribeMemoryWarning, } from './helpers';
|
|
1828
1818
|
export { setMaxNetworkLogsLimit, getMaxNetworkLogsLimit, pruneNetworkLogs, } from './customHooks/networkLogger';
|
|
1829
1819
|
export { setMaxConsoleLogsLimit, getMaxConsoleLogsLimit, pruneConsoleLogs, } from './customHooks/consoleLogger';
|
|
1830
1820
|
export { setMaxReduxHistoryLimit, getMaxReduxHistoryLimit, pruneReduxHistory, } from './customHooks/reduxLogger';
|
|
@@ -411,16 +411,7 @@ RCT_EXPORT_MODULE(NetworkInspectorModule);
|
|
|
411
411
|
- (void)safeSendEvent:(NSString *)eventName body:(id)body {
|
|
412
412
|
if (!hasListeners) return;
|
|
413
413
|
@try {
|
|
414
|
-
|
|
415
|
-
[self sendEventWithName:eventName body:body];
|
|
416
|
-
} else if ([self respondsToSelector:@selector(callableJSModules)]) {
|
|
417
|
-
id callable = [self valueForKey:@"callableJSModules"];
|
|
418
|
-
if (callable && [callable respondsToSelector:@selector(invokeExpectedMethod:method:args:)]) {
|
|
419
|
-
[callable invokeExpectedMethod:@"RCTDeviceEventEmitter"
|
|
420
|
-
method:@"emit"
|
|
421
|
-
args:body ? @[eventName, body] : @[eventName]];
|
|
422
|
-
}
|
|
423
|
-
}
|
|
414
|
+
[self sendEventWithName:eventName body:body];
|
|
424
415
|
} @catch (NSException *ex) {
|
|
425
416
|
NSLog(@"[InAppInspector] Safe sendEvent error: %@", ex.reason);
|
|
426
417
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-inapp-inspector",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.7",
|
|
4
4
|
"description": "The zero-config, all-in-one in-app debugger for React Native & Expo. Inspect Network (fetch/axios), Console logs, Stack Traces, Redux State, Firebase Analytics, and JS Bundle size directly on device.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"scripts": {
|
|
102
102
|
"clean": "rm -rf dist",
|
|
103
103
|
"prebuild": "node scripts/gen-version.js",
|
|
104
|
-
"build": "npm run clean && tsc && tsc -p tsconfig.esm.json
|
|
104
|
+
"build": "npm run clean && tsc && tsc -p tsconfig.esm.json",
|
|
105
105
|
"prepare": "npm run build",
|
|
106
106
|
"watch": "tsc -w",
|
|
107
107
|
"prepack": "npm run build",
|
|
@@ -19,7 +19,6 @@ import {METHOD_COLORS} from '../../constants';
|
|
|
19
19
|
import {LIB_VERSION} from '../../constants';
|
|
20
20
|
import {Method} from '../../types';
|
|
21
21
|
import {getStatusColor, getAppName, formatTime, getSize} from '../../helpers';
|
|
22
|
-
import {getTelemetryConsentStatus} from '../../helpers/telemetry';
|
|
23
22
|
import {UpdateAvailableModal} from './UpdateAvailableModal';
|
|
24
23
|
import {
|
|
25
24
|
WhiteBackNavigation,
|
|
@@ -72,35 +71,6 @@ const InspectorHeader = React.memo(() => {
|
|
|
72
71
|
} = useInspector();
|
|
73
72
|
|
|
74
73
|
const [showUpdateModal, setShowUpdateModal] = React.useState<boolean>(false);
|
|
75
|
-
const [isTelemetryActive, setIsTelemetryActive] =
|
|
76
|
-
React.useState<boolean>(false);
|
|
77
|
-
const telemetryPulseAnim = React.useRef(new Animated.Value(1)).current;
|
|
78
|
-
|
|
79
|
-
React.useEffect(() => {
|
|
80
|
-
getTelemetryConsentStatus().then(status => {
|
|
81
|
-
setIsTelemetryActive(status === 'granted');
|
|
82
|
-
});
|
|
83
|
-
}, [visible]);
|
|
84
|
-
|
|
85
|
-
React.useEffect(() => {
|
|
86
|
-
if (!isTelemetryActive) return;
|
|
87
|
-
const pulse = Animated.loop(
|
|
88
|
-
Animated.sequence([
|
|
89
|
-
Animated.timing(telemetryPulseAnim, {
|
|
90
|
-
toValue: 2.2,
|
|
91
|
-
duration: 1500,
|
|
92
|
-
useNativeDriver: true,
|
|
93
|
-
}),
|
|
94
|
-
Animated.timing(telemetryPulseAnim, {
|
|
95
|
-
toValue: 1,
|
|
96
|
-
duration: 0,
|
|
97
|
-
useNativeDriver: true,
|
|
98
|
-
}),
|
|
99
|
-
]),
|
|
100
|
-
);
|
|
101
|
-
pulse.start();
|
|
102
|
-
return () => pulse.stop();
|
|
103
|
-
}, [isTelemetryActive, telemetryPulseAnim]);
|
|
104
74
|
|
|
105
75
|
const envConfig = useMemo(() => {
|
|
106
76
|
const rawEnv = (environment || (__DEV__ ? 'DEV' : 'PROD')).trim();
|
|
@@ -455,69 +425,6 @@ const InspectorHeader = React.memo(() => {
|
|
|
455
425
|
</Text>
|
|
456
426
|
)}
|
|
457
427
|
</Pressable>
|
|
458
|
-
|
|
459
|
-
{isTelemetryActive && (
|
|
460
|
-
<Pressable
|
|
461
|
-
onPress={() =>
|
|
462
|
-
Alert.alert(
|
|
463
|
-
'Anonymous Telemetry Active',
|
|
464
|
-
'Anonymous diagnostics (such as React Native version, JavaScript engine, and device model) are currently enabled to help improve library tooling.\n\nNo user data or network payloads are captured. You can toggle this anytime in Settings.',
|
|
465
|
-
[{text: 'Got it'}],
|
|
466
|
-
)
|
|
467
|
-
}
|
|
468
|
-
style={{
|
|
469
|
-
flexDirection: 'row',
|
|
470
|
-
alignItems: 'center',
|
|
471
|
-
backgroundColor: 'rgba(16, 185, 129, 0.22)',
|
|
472
|
-
borderRadius: 5,
|
|
473
|
-
paddingHorizontal: 5.5,
|
|
474
|
-
paddingVertical: 2,
|
|
475
|
-
gap: 4.5,
|
|
476
|
-
borderWidth: 1,
|
|
477
|
-
borderColor: 'rgba(52, 211, 153, 0.45)',
|
|
478
|
-
flexShrink: 0,
|
|
479
|
-
}}>
|
|
480
|
-
<View
|
|
481
|
-
style={{
|
|
482
|
-
width: 6,
|
|
483
|
-
height: 6,
|
|
484
|
-
alignItems: 'center',
|
|
485
|
-
justifyContent: 'center',
|
|
486
|
-
}}>
|
|
487
|
-
<Animated.View
|
|
488
|
-
style={{
|
|
489
|
-
position: 'absolute',
|
|
490
|
-
width: 6,
|
|
491
|
-
height: 6,
|
|
492
|
-
borderRadius: 3,
|
|
493
|
-
backgroundColor: '#34D399',
|
|
494
|
-
opacity: telemetryPulseAnim.interpolate({
|
|
495
|
-
inputRange: [1, 2.2],
|
|
496
|
-
outputRange: [0.8, 0],
|
|
497
|
-
}),
|
|
498
|
-
transform: [{scale: telemetryPulseAnim}],
|
|
499
|
-
}}
|
|
500
|
-
/>
|
|
501
|
-
<View
|
|
502
|
-
style={{
|
|
503
|
-
width: 4,
|
|
504
|
-
height: 4,
|
|
505
|
-
borderRadius: 2,
|
|
506
|
-
backgroundColor: '#10B981',
|
|
507
|
-
}}
|
|
508
|
-
/>
|
|
509
|
-
</View>
|
|
510
|
-
<Text
|
|
511
|
-
style={{
|
|
512
|
-
fontFamily: AppFonts.interBold,
|
|
513
|
-
fontSize: 9,
|
|
514
|
-
color: '#6EE7B7',
|
|
515
|
-
letterSpacing: 0.2,
|
|
516
|
-
}}>
|
|
517
|
-
LIVE
|
|
518
|
-
</Text>
|
|
519
|
-
</Pressable>
|
|
520
|
-
)}
|
|
521
428
|
</View>
|
|
522
429
|
</View>
|
|
523
430
|
</View>
|
|
@@ -30,7 +30,6 @@ import CrashDetail from './CrashDetail';
|
|
|
30
30
|
import DeviceInfoTab from './DeviceInfoTab';
|
|
31
31
|
import StorageTab from './StorageTab';
|
|
32
32
|
import SettingsPanel from './SettingsPanel';
|
|
33
|
-
import TelemetryConsentModal from './TelemetryConsentModal';
|
|
34
33
|
import NpmUpdateToast from './NpmUpdateToast';
|
|
35
34
|
import Toast from '../Toast';
|
|
36
35
|
import styles from '../../styles';
|
|
@@ -244,9 +243,6 @@ const MainScreen = () => {
|
|
|
244
243
|
|
|
245
244
|
{/* NPM Version Update Toast with timeout progress bar */}
|
|
246
245
|
<NpmUpdateToast />
|
|
247
|
-
|
|
248
|
-
{/* Anonymous Telemetry Consent Dialog shown ONLY when inspector is active */}
|
|
249
|
-
<TelemetryConsentModal />
|
|
250
246
|
</View>
|
|
251
247
|
</View>
|
|
252
248
|
</ErrorBoundary>
|
|
@@ -31,11 +31,6 @@ import {isReduxConnected} from '../../customHooks/reduxLogger';
|
|
|
31
31
|
import {isAnalyticsConnected} from '../../customHooks/analyticsLogger';
|
|
32
32
|
import {useTranslation} from '../../i18n';
|
|
33
33
|
import {ActiveTab} from '../../types';
|
|
34
|
-
import {
|
|
35
|
-
getTelemetryConsentStatus,
|
|
36
|
-
setTelemetryConsent,
|
|
37
|
-
sendSessionTelemetryPing,
|
|
38
|
-
} from '../../helpers/telemetry';
|
|
39
34
|
import {
|
|
40
35
|
SignalIcon,
|
|
41
36
|
TerminalIcon,
|
|
@@ -121,22 +116,6 @@ const SettingsPanel = () => {
|
|
|
121
116
|
} = useInspector();
|
|
122
117
|
|
|
123
118
|
const [stagedHeight, setStagedHeight] = useState(modalHeightPercent);
|
|
124
|
-
const [telemetryConsent, setTelemetryConsentState] = useState<boolean>(true);
|
|
125
|
-
|
|
126
|
-
useEffect(() => {
|
|
127
|
-
getTelemetryConsentStatus().then(status => {
|
|
128
|
-
setTelemetryConsentState(status === 'granted');
|
|
129
|
-
});
|
|
130
|
-
}, []);
|
|
131
|
-
|
|
132
|
-
const handleToggleTelemetry = async () => {
|
|
133
|
-
const nextVal = !telemetryConsent;
|
|
134
|
-
setTelemetryConsentState(nextVal);
|
|
135
|
-
await setTelemetryConsent(nextVal);
|
|
136
|
-
if (nextVal) {
|
|
137
|
-
sendSessionTelemetryPing({force: true});
|
|
138
|
-
}
|
|
139
|
-
};
|
|
140
119
|
|
|
141
120
|
useEffect(() => {
|
|
142
121
|
setStagedHeight(modalHeightPercent);
|
|
@@ -1679,112 +1658,7 @@ const SettingsPanel = () => {
|
|
|
1679
1658
|
</View>
|
|
1680
1659
|
</View>
|
|
1681
1660
|
|
|
1682
|
-
{/* Section 4:
|
|
1683
|
-
<View
|
|
1684
|
-
style={{
|
|
1685
|
-
backgroundColor: AppColors.primaryLight,
|
|
1686
|
-
borderRadius: 14,
|
|
1687
|
-
borderWidth: 1,
|
|
1688
|
-
borderColor: AppColors.grayBorderSecondary,
|
|
1689
|
-
overflow: 'hidden',
|
|
1690
|
-
padding: 14,
|
|
1691
|
-
gap: 12,
|
|
1692
|
-
}}>
|
|
1693
|
-
<Text
|
|
1694
|
-
style={{
|
|
1695
|
-
fontFamily: AppFonts.interBold,
|
|
1696
|
-
fontSize: 11,
|
|
1697
|
-
lineHeight: 14,
|
|
1698
|
-
color: AppColors.grayTextWeak,
|
|
1699
|
-
letterSpacing: 0.8,
|
|
1700
|
-
}}>
|
|
1701
|
-
PRIVACY & ANONYMOUS DIAGNOSTICS
|
|
1702
|
-
</Text>
|
|
1703
|
-
|
|
1704
|
-
<View
|
|
1705
|
-
style={{
|
|
1706
|
-
flexDirection: 'row',
|
|
1707
|
-
alignItems: 'center',
|
|
1708
|
-
justifyContent: 'space-between',
|
|
1709
|
-
}}>
|
|
1710
|
-
<View
|
|
1711
|
-
style={{
|
|
1712
|
-
flexDirection: 'row',
|
|
1713
|
-
alignItems: 'center',
|
|
1714
|
-
gap: 10,
|
|
1715
|
-
flex: 1,
|
|
1716
|
-
marginRight: 10,
|
|
1717
|
-
}}>
|
|
1718
|
-
<View
|
|
1719
|
-
style={{
|
|
1720
|
-
width: 32,
|
|
1721
|
-
height: 32,
|
|
1722
|
-
borderRadius: 8,
|
|
1723
|
-
backgroundColor: AppColors.purpleShade50,
|
|
1724
|
-
alignItems: 'center',
|
|
1725
|
-
justifyContent: 'center',
|
|
1726
|
-
}}>
|
|
1727
|
-
<ShieldAlertIcon color={AppColors.purple} size={15} />
|
|
1728
|
-
</View>
|
|
1729
|
-
<View style={{flex: 1}}>
|
|
1730
|
-
<Text
|
|
1731
|
-
style={{
|
|
1732
|
-
fontFamily: AppFonts.interBold,
|
|
1733
|
-
fontSize: 13.5,
|
|
1734
|
-
lineHeight: 18,
|
|
1735
|
-
color: AppColors.primaryBlack,
|
|
1736
|
-
}}>
|
|
1737
|
-
Help Improve In-App Inspector
|
|
1738
|
-
</Text>
|
|
1739
|
-
<Text
|
|
1740
|
-
style={{
|
|
1741
|
-
fontFamily: AppFonts.interRegular,
|
|
1742
|
-
fontSize: 11,
|
|
1743
|
-
lineHeight: 15,
|
|
1744
|
-
color: AppColors.grayText,
|
|
1745
|
-
marginTop: 1,
|
|
1746
|
-
}}>
|
|
1747
|
-
Share non-identifiable technical metrics (RN version, JS
|
|
1748
|
-
engine, device model). No user data or network payloads
|
|
1749
|
-
are captured.
|
|
1750
|
-
</Text>
|
|
1751
|
-
</View>
|
|
1752
|
-
</View>
|
|
1753
|
-
|
|
1754
|
-
<TouchableScale
|
|
1755
|
-
accessible={true}
|
|
1756
|
-
accessibilityRole="switch"
|
|
1757
|
-
accessibilityLabel="Toggle Anonymous Telemetry"
|
|
1758
|
-
accessibilityState={{checked: telemetryConsent}}
|
|
1759
|
-
onPress={handleToggleTelemetry}
|
|
1760
|
-
style={{
|
|
1761
|
-
width: 42,
|
|
1762
|
-
height: 24,
|
|
1763
|
-
borderRadius: 12,
|
|
1764
|
-
backgroundColor: telemetryConsent
|
|
1765
|
-
? AppColors.purple
|
|
1766
|
-
: AppColors.grayBorderSecondary,
|
|
1767
|
-
padding: 2,
|
|
1768
|
-
justifyContent: 'center',
|
|
1769
|
-
alignItems: telemetryConsent ? 'flex-end' : 'flex-start',
|
|
1770
|
-
}}>
|
|
1771
|
-
<View
|
|
1772
|
-
style={{
|
|
1773
|
-
width: 20,
|
|
1774
|
-
height: 20,
|
|
1775
|
-
borderRadius: 10,
|
|
1776
|
-
backgroundColor: AppColors.white,
|
|
1777
|
-
shadowColor: AppColors.black,
|
|
1778
|
-
shadowOpacity: 0.18,
|
|
1779
|
-
shadowRadius: 2,
|
|
1780
|
-
shadowOffset: {width: 0, height: 1},
|
|
1781
|
-
}}
|
|
1782
|
-
/>
|
|
1783
|
-
</TouchableScale>
|
|
1784
|
-
</View>
|
|
1785
|
-
</View>
|
|
1786
|
-
|
|
1787
|
-
{/* Section 5: Notifications & Toasts */}
|
|
1661
|
+
{/* Section 4: Notifications & Toasts */}
|
|
1788
1662
|
<View
|
|
1789
1663
|
style={{
|
|
1790
1664
|
backgroundColor: AppColors.primaryLight,
|
|
@@ -1888,7 +1762,7 @@ const SettingsPanel = () => {
|
|
|
1888
1762
|
</View>
|
|
1889
1763
|
</View>
|
|
1890
1764
|
|
|
1891
|
-
{/* Section
|
|
1765
|
+
{/* Section 5: NPM Package & Updates */}
|
|
1892
1766
|
<View
|
|
1893
1767
|
style={{
|
|
1894
1768
|
backgroundColor: AppColors.primaryLight,
|
package/src/constants/version.ts
CHANGED
package/src/helpers/index.ts
CHANGED
package/src/index.tsx
CHANGED
|
@@ -30,13 +30,6 @@ import {
|
|
|
30
30
|
getDomainColor,
|
|
31
31
|
getEventCategory,
|
|
32
32
|
matchNetworkLogQuery,
|
|
33
|
-
sendSessionTelemetryPing,
|
|
34
|
-
trackTelemetryEvent,
|
|
35
|
-
trackInspectorOpen,
|
|
36
|
-
trackTabSwitch,
|
|
37
|
-
trackLogExport,
|
|
38
|
-
GA4_MEASUREMENT_ID,
|
|
39
|
-
GA4_API_SECRET,
|
|
40
33
|
setupMemoryWarningHandler,
|
|
41
34
|
pruneAllLogs,
|
|
42
35
|
subscribeMemoryWarning,
|
|
@@ -920,14 +913,7 @@ const NetworkInspector = ({
|
|
|
920
913
|
const useNativeFab =
|
|
921
914
|
(Platform.OS === 'ios' || Platform.OS === 'android') && isNativeModule;
|
|
922
915
|
|
|
923
|
-
|
|
924
|
-
useEffect(() => {
|
|
925
|
-
sendSessionTelemetryPing({
|
|
926
|
-
environment,
|
|
927
|
-
hasNavigation: Boolean(navigationRef),
|
|
928
|
-
hasAppIcon: Boolean(appIcon),
|
|
929
|
-
});
|
|
930
|
-
}, [environment, navigationRef, appIcon]);
|
|
916
|
+
|
|
931
917
|
|
|
932
918
|
// 100% Native Main-Thread Floating Button Lifecycle
|
|
933
919
|
useEffect(() => {
|
|
@@ -989,8 +975,7 @@ const NetworkInspector = ({
|
|
|
989
975
|
: 'apis';
|
|
990
976
|
setActiveTab(target);
|
|
991
977
|
|
|
992
|
-
|
|
993
|
-
trackInspectorOpen({activeTab: target});
|
|
978
|
+
|
|
994
979
|
|
|
995
980
|
// Instant synchronization of data collected while modal was closed
|
|
996
981
|
if (latestNetworkLogsRef.current.length > 0) {
|
|
@@ -2263,13 +2248,6 @@ export {
|
|
|
2263
2248
|
} from './native/NativeInspector';
|
|
2264
2249
|
|
|
2265
2250
|
export {
|
|
2266
|
-
sendSessionTelemetryPing,
|
|
2267
|
-
trackTelemetryEvent,
|
|
2268
|
-
trackInspectorOpen,
|
|
2269
|
-
trackTabSwitch,
|
|
2270
|
-
trackLogExport,
|
|
2271
|
-
GA4_MEASUREMENT_ID,
|
|
2272
|
-
GA4_API_SECRET,
|
|
2273
2251
|
setupMemoryWarningHandler,
|
|
2274
2252
|
pruneAllLogs,
|
|
2275
2253
|
subscribeMemoryWarning,
|