Files
react-native/Libraries/ReactNative/ReactNativeFeatureFlags.js
T
Rubén Norte 01f2936de1 Create feature flag for DOM trees in Fabric
Summary:
This adds a feature flag to enable all the new DOM traversal and layout APIs (in https://github.com/react-native-community/discussions-and-proposals/pull/607).

Changelog: [Internal]

Reviewed By: rshest

Differential Revision: D43981608

fbshipit-source-id: 77bb1ee4faaaf30cfc8bb2e493763b168702f498
2023-03-14 08:48:24 -07:00

61 lines
2.0 KiB
JavaScript

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow strict
* @format
*/
export type FeatureFlags = {|
/**
* Function used to enable / disabled Layout Animations in React Native.
* Default value = true.
*/
isLayoutAnimationEnabled: () => boolean,
/**
* Function used to enable / disable W3C pointer event emitting in React Native.
* If enabled you must also flip the equivalent native flags on each platform:
* iOS -> RCTSetDispatchW3CPointerEvents
* Android -> ReactFeatureFlags.dispatchPointerEvents
*/
shouldEmitW3CPointerEvents: () => boolean,
/**
* Function used to enable / disable Pressibility from using W3C Pointer Events
* for its hover callbacks
*/
shouldPressibilityUseW3CPointerEventsForHover: () => boolean,
/**
* Enables an experimental flush-queue debouncing in Animated.js.
*/
animatedShouldDebounceQueueFlush: () => boolean,
/**
* Enables an experimental mega-operation for Animated.js that replaces
* many calls to native with a single call into native, to reduce JSI/JNI
* traffic.
*/
animatedShouldUseSingleOp: () => boolean,
/**
* Enables GlobalPerformanceLogger replacement with a WebPerformance API based
* implementation
*/
isGlobalWebPerformanceLoggerEnabled: () => boolean,
/**
* Enables access to the host tree in Fabric using DOM-compatible APIs.
*/
enableAccessToHostTreeInFabric: () => boolean,
|};
const ReactNativeFeatureFlags: FeatureFlags = {
isLayoutAnimationEnabled: () => true,
shouldEmitW3CPointerEvents: () => false,
shouldPressibilityUseW3CPointerEventsForHover: () => false,
animatedShouldDebounceQueueFlush: () => false,
animatedShouldUseSingleOp: () => false,
isGlobalWebPerformanceLoggerEnabled: () => false,
enableAccessToHostTreeInFabric: () => false,
};
module.exports = ReactNativeFeatureFlags;