From 28e6d89c0ab931f9efbae495d4dbe4088e11eb94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20Norte?= Date: Thu, 29 Feb 2024 14:16:16 +0000 Subject: [PATCH] [RN] Use microtasks when using bridgeless mode in React Native Fabric renderer (OSS version) --- .eslintrc.js | 2 ++ packages/shared/forks/ReactFeatureFlags.native-oss.js | 5 ++++- scripts/flow/xplat.js | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index eaad9393c5685..a636db4736a11 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -533,5 +533,7 @@ module.exports = { AsyncLocalStorage: 'readonly', async_hooks: 'readonly', globalThis: 'readonly', + + RN$Bridgeless: 'readonly', }, }; diff --git a/packages/shared/forks/ReactFeatureFlags.native-oss.js b/packages/shared/forks/ReactFeatureFlags.native-oss.js index dcc8fd7b95f24..bd870f125a9f0 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-oss.js +++ b/packages/shared/forks/ReactFeatureFlags.native-oss.js @@ -82,7 +82,10 @@ export const enableAsyncActions = false; export const alwaysThrottleRetries = false; -export const useMicrotasksForSchedulingInFabric = false; +const isBridgeless: boolean = + typeof RN$Bridgeless !== 'undefined' && !!RN$Bridgeless; + +export const useMicrotasksForSchedulingInFabric = isBridgeless; export const passChildrenWhenCloningPersistedNodes = false; export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__; export const disableClientCache = true; diff --git a/scripts/flow/xplat.js b/scripts/flow/xplat.js index cc5bc16b82cc5..a2baf2f7bf85c 100644 --- a/scripts/flow/xplat.js +++ b/scripts/flow/xplat.js @@ -7,6 +7,9 @@ * @flow */ +// eslint-disable-next-line no-unused-vars +declare const RN$Bridgeless: boolean; + declare module 'ReactNativeInternalFeatureFlags' { declare export var alwaysThrottleRetries: boolean; declare export var enableComponentStackLocations: boolean;