Skip to content

Commit 459fadc

Browse files
hoxyqfacebook-github-bot
authored andcommitted
Use native module to persist RDT settings (#46663)
Summary: Pull Request resolved: #46663 # Changelog: [Internal] Now we can use the native module for persisting settings in React DevTools. Basically, this diff adds read / write implementations. Reviewed By: huntie Differential Revision: D62967060 fbshipit-source-id: c14ef056c8d7e30a23d2b84d1ad4fc0ad8eaaf34
1 parent d336a7c commit 459fadc

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

packages/react-native/Libraries/Core/setUpReactDevTools.js

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,23 @@ if (__DEV__) {
2121
connectWithCustomMessagingProtocol,
2222
} = require('react-devtools-core');
2323

24+
const reactDevToolsSettingsManager = require('../../src/private/reactdevtools/ReactDevToolsSettingsManager');
25+
const serializedHookSettings =
26+
reactDevToolsSettingsManager.getGlobalHookSettings();
27+
28+
let hookSettings = null;
29+
if (serializedHookSettings != null) {
30+
try {
31+
const parsedSettings = JSON.parse(serializedHookSettings);
32+
hookSettings = parsedSettings;
33+
} catch {
34+
console.error(
35+
'Failed to parse persisted React DevTools hook settings. React DevTools will be initialized with default settings.',
36+
);
37+
}
38+
}
2439
// Install hook before React is loaded.
25-
initialize();
40+
initialize(hookSettings);
2641

2742
// This should be defined in DEV, otherwise error is expected.
2843
const fuseboxReactDevToolsDispatcher =
@@ -33,6 +48,12 @@ if (__DEV__) {
3348
const ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes');
3449
const resolveRNStyle = require('../StyleSheet/flattenStyle');
3550

51+
function handleReactDevToolsSettingsUpdate(settings: Object) {
52+
reactDevToolsSettingsManager.setGlobalHookSettings(
53+
JSON.stringify(settings),
54+
);
55+
}
56+
3657
let disconnect = null;
3758
function disconnectBackendFromReactDevToolsInFuseboxIfNeeded() {
3859
if (disconnect != null) {
@@ -54,6 +75,7 @@ if (__DEV__) {
5475
},
5576
nativeStyleEditorValidAttributes: Object.keys(ReactNativeStyleAttributes),
5677
resolveRNStyle,
78+
onSettingsUpdated: handleReactDevToolsSettingsUpdate,
5779
});
5880
}
5981

@@ -112,6 +134,7 @@ if (__DEV__) {
112134
ReactNativeStyleAttributes,
113135
),
114136
websocket: ws,
137+
onSettingsUpdated: handleReactDevToolsSettingsUpdate,
115138
});
116139
}
117140
}

0 commit comments

Comments
 (0)