Transfer 'DisplayMode' value from Native -> JS

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
This commit is contained in:
David Vacca
2021-04-12 00:05:43 -07:00
committed by Facebook GitHub Bot
parent bdb9a1e094
commit b28ddede7b
4 changed files with 52 additions and 5 deletions
@@ -125,6 +125,8 @@ inline static SurfaceId surfaceIdFromValue(
}
inline static int displayModeToInt(DisplayMode const value) {
// the result of this method should be in sync with
// Libraries/ReactNative/DisplayMode.js
switch (value) {
case DisplayMode::Visible:
return 1;