-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Description
we can use NativeModules.SettingsManager.settings.RCTDevMenu.isDebuggingRemotely instead of AsyncStorage
import { useCallback, useEffect } from 'react';
import { NativeModules, DevSettings, Platform } from 'react-native';
export const useRemoteDebugger = () => {
const connectToRemoteDebugger = (value: boolean) => () => {
NativeModules.DevSettings.setIsDebuggingRemotely(value);
};
const handleAddMenuItem = useCallback(() => {
// Check if remote debugging is enabled
const isDebuggingRemotely =
!!NativeModules?.SettingsManager?.settings?.RCTDevMenu
?.isDebuggingRemotely;
setTimeout(() => {
if (Platform.OS === 'ios') {
DevSettings.addMenuItem(
isDebuggingRemotely ? '(*) Stop Debugging' : '(*) Debug JS Remotely',
connectToRemoteDebugger(!isDebuggingRemotely)
);
} else {
DevSettings.addMenuItem(
'(*) Debug JS Remotely',
connectToRemoteDebugger(true)
);
DevSettings.addMenuItem(
'(*) Stop Debugging',
connectToRemoteDebugger(false)
);
}
}, 100);
}, []);
useEffect(() => {
if (__DEV__) {
handleAddMenuItem();
}
}, [handleAddMenuItem]);
};windduong, gusgard and dirkpostma
Metadata
Metadata
Assignees
Labels
No labels