From 524afb4c2a1c05d7c3fc401e7166f5ba2da962b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20Norte?= Date: Tue, 29 Apr 2025 10:13:09 -0700 Subject: [PATCH] Expose event priorities in Fantom and JS (#50986) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/50986 Changelog: [internal] This just exposes some enum values and methods that we forgot to expose in a few interfaces. Reviewed By: javache Differential Revision: D73849221 fbshipit-source-id: 19014d53216e67c77b0c31e5ade8f86de071b001 --- packages/react-native-fantom/src/index.js | 2 ++ .../Libraries/ReactNative/FabricUIManager.js | 10 ++++++++++ .../__tests__/__snapshots__/public-api-test.js.snap | 5 +++++ .../src/private/testing/fantom/specs/NativeFantom.js | 6 ++++++ 4 files changed, 23 insertions(+) diff --git a/packages/react-native-fantom/src/index.js b/packages/react-native-fantom/src/index.js index 8fb1a05c034..ed8d85582be 100644 --- a/packages/react-native-fantom/src/index.js +++ b/packages/react-native-fantom/src/index.js @@ -123,6 +123,8 @@ class Root { export type {Root}; +export {NativeEventCategory} from 'react-native/src/private/testing/fantom/specs/NativeFantom'; + const DEFAULT_TASK_PRIORITY = schedulerPriorityImmediate; /** diff --git a/packages/react-native/Libraries/ReactNative/FabricUIManager.js b/packages/react-native/Libraries/ReactNative/FabricUIManager.js index 7766b3ee551..13b203f0abd 100644 --- a/packages/react-native/Libraries/ReactNative/FabricUIManager.js +++ b/packages/react-native/Libraries/ReactNative/FabricUIManager.js @@ -92,6 +92,11 @@ export interface Spec { /* width: */ number, /* height: */ number, ]; + +unstable_DefaultEventPriority: number; + +unstable_DiscreteEventPriority: number; + +unstable_ContinuousEventPriority: number; + +unstable_IdleEventPriority: number; + +unstable_getCurrentEventPriority: () => number; } let nativeFabricUIManagerProxy: ?Spec; @@ -119,6 +124,11 @@ const CACHED_PROPERTIES = [ 'dispatchCommand', 'compareDocumentPosition', 'getBoundingClientRect', + 'unstable_DefaultEventPriority', + 'unstable_DiscreteEventPriority', + 'unstable_ContinuousEventPriority', + 'unstable_IdleEventPriority', + 'unstable_getCurrentEventPriority', ]; // This is exposed as a getter because apps using the legacy renderer AND diff --git a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap index b25752eb8e5..bb987eef5e7 100644 --- a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap +++ b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap @@ -6593,6 +6593,11 @@ export interface Spec { node: Node | NativeElementReference, includeTransform: boolean ) => ?[number, number, number, number]; + +unstable_DefaultEventPriority: number; + +unstable_DiscreteEventPriority: number; + +unstable_ContinuousEventPriority: number; + +unstable_IdleEventPriority: number; + +unstable_getCurrentEventPriority: () => number; } declare export function getFabricUIManager(): ?Spec; " diff --git a/packages/react-native/src/private/testing/fantom/specs/NativeFantom.js b/packages/react-native/src/private/testing/fantom/specs/NativeFantom.js index f6a9e27c473..786f77d1267 100644 --- a/packages/react-native/src/private/testing/fantom/specs/NativeFantom.js +++ b/packages/react-native/src/private/testing/fantom/specs/NativeFantom.js @@ -49,6 +49,12 @@ export enum NativeEventCategory { * isn't ongoing. */ Continuous = 4, + + /* + * Priority for events that can be processed in idle times or in the + * background. + */ + Idle = 5, } export type ScrollOptions = {