From 2782c6fba643815e4074ceebe57a20d17ec2f550 Mon Sep 17 00:00:00 2001 From: Ruslan Lesiutin Date: Thu, 26 Sep 2024 08:06:31 -0700 Subject: [PATCH] upgrade React Native on a new RDT backend Summary: # Changelog: [Internal] In React DevTools 6.0.0, settings manager is [no longer used](https://github.com/facebook/react/pull/30986), because the host of the Backend is responsible for settings persistance. Also, `installHook()` call was removed from the top level of the JavaScript module and now we need to call `initialize()` explicitly. The logic for persisting settings will be added in one of the next diffs at the top. Differential Revision: D62967059 --- .../Libraries/Core/setUpReactDevTools.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/react-native/Libraries/Core/setUpReactDevTools.js b/packages/react-native/Libraries/Core/setUpReactDevTools.js index c70279ba27fc21..4b4cb1989eea69 100644 --- a/packages/react-native/Libraries/Core/setUpReactDevTools.js +++ b/packages/react-native/Libraries/Core/setUpReactDevTools.js @@ -15,9 +15,15 @@ import type {Domain} from '../../src/private/fusebox/setUpFuseboxReactDevToolsDi if (__DEV__) { // Register dispatcher on global, which can be used later by Chrome DevTools frontend require('../../src/private/fusebox/setUpFuseboxReactDevToolsDispatcher'); + const { + initialize, + connectToDevTools, + connectWithCustomMessagingProtocol, + } = require('react-devtools-core'); // Install hook before React is loaded. - const reactDevTools = require('react-devtools-core'); + initialize(); + // This should be defined in DEV, otherwise error is expected. const fuseboxReactDevToolsDispatcher = global.__FUSEBOX_REACT_DEVTOOLS_DISPATCHER__; @@ -25,7 +31,6 @@ if (__DEV__) { fuseboxReactDevToolsDispatcher.BINDING_NAME; const ReactNativeStyleAttributes = require('../Components/View/ReactNativeStyleAttributes'); - const devToolsSettingsManager = require('../DevToolsSettings/DevToolsSettingsManager'); const resolveRNStyle = require('../StyleSheet/flattenStyle'); let disconnect = null; @@ -37,7 +42,7 @@ if (__DEV__) { } function connectToReactDevToolsInFusebox(domain: Domain) { - disconnect = reactDevTools.connectWithCustomMessagingProtocol({ + disconnect = connectWithCustomMessagingProtocol({ onSubscribe: listener => { domain.onMessage.addEventListener(listener); }, @@ -47,7 +52,6 @@ if (__DEV__) { onMessage: (event, payload) => { domain.sendMessage({event, payload}); }, - settingsManager: devToolsSettingsManager, nativeStyleEditorValidAttributes: Object.keys(ReactNativeStyleAttributes), resolveRNStyle, }); @@ -101,14 +105,13 @@ if (__DEV__) { isWebSocketOpen = true; }); - reactDevTools.connectToDevTools({ + connectToDevTools({ isAppActive, resolveRNStyle, nativeStyleEditorValidAttributes: Object.keys( ReactNativeStyleAttributes, ), websocket: ws, - devToolsSettingsManager, }); } }