mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
b28ddede7b
Summary: This diff adds a new variable called "DisplayMode" into SurfaceHandler.cpp and FacebookAppRouteHandler.js. The purpose of DisplayMode is for the native pre-render system to notify React that the a surface is either being "pre-rendered" or "rendered" When the surface is being "pre-rendered" (displayMode == "SUSPENDED"), react will create and commit React Trees, but it will not execute use-effect callbacks When the surface is being "rendered" (displayMode == "VISIBLE"), react will create and commit React Trees and it will not execute all use-effect callbacks that weren't executed during "pre-rendering" By default surfaces are going to be rendered with displayMode == "VISIBLE". This diff should not create any change of behavior for now, this is the infra required to integrate the new offScreen API the react team is working on for pre-rendering system changelog: [internal] internal Reviewed By: yungsters Differential Revision: D27614664 fbshipit-source-id: f1f42fdf174c2ffa74174feb1873f1d5d46e7a95
34 lines
818 B
JavaScript
34 lines
818 B
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its 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-local
|
|
* @format
|
|
*/
|
|
|
|
export opaque type DisplayModeType = number;
|
|
|
|
/** DisplayMode should be in sync with the method displayModeToInt from
|
|
* react/renderer/uimanager/primitives.h. */
|
|
const DisplayMode: {[string]: DisplayModeType} = Object.freeze({
|
|
VISIBLE: 1,
|
|
SUSPENDED: 2,
|
|
HIDDEN: 3,
|
|
});
|
|
|
|
export function coerceDisplayMode(value: ?number): DisplayModeType {
|
|
if (value == null || value === undefined) {
|
|
return DisplayMode.VISIBLE;
|
|
}
|
|
switch (value) {
|
|
case DisplayMode.SUSPENDED:
|
|
case DisplayMode.HIDDEN:
|
|
return value;
|
|
}
|
|
return DisplayMode.VISIBLE;
|
|
}
|
|
|
|
export default DisplayMode;
|