Move out enums VirtualViewMode and VirtualViewRenderState (#52798)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/52798

Changelog: [Internal] - Move out VirtualViewMode and VirtualViewRenderState into separate files for experimental VirtualView

Reviewed By: mdvacca

Differential Revision: D78825700

fbshipit-source-id: ec21867688b69c4dc88be94a2f3454e07fe4c1bc
This commit is contained in:
Luna Wei
2025-07-23 20:23:31 -07:00
committed by Facebook GitHub Bot
parent e1ae619fce
commit f41f52cf93
4 changed files with 47 additions and 32 deletions
@@ -21,23 +21,13 @@
#import <react/renderer/components/virtualview/VirtualViewComponentDescriptor.h>
#import <react/renderer/components/virtualview/VirtualViewShadowNode.h>
#import "../VirtualViewExperimental/RCTVirtualViewMode.h"
#import "../VirtualViewExperimental/RCTVirtualViewRenderState.h"
#import "RCTFabricComponentsPlugins.h"
using namespace facebook;
using namespace facebook::react;
typedef NS_ENUM(NSInteger, RCTVirtualViewMode) {
RCTVirtualViewModeVisible = 0,
RCTVirtualViewModePrerender = 1,
RCTVirtualViewModeHidden = 2,
};
typedef NS_ENUM(NSInteger, RCTVirtualViewRenderState) {
RCTVirtualViewRenderStateUnknown = 0,
RCTVirtualViewRenderStateRendered = 1,
RCTVirtualViewRenderStateNone = 2,
};
/**
* Checks whether one CGRect overlaps with another CGRect.
*
@@ -72,8 +62,8 @@ static BOOL CGRectOverlaps(CGRect rect1, CGRect rect2)
@implementation RCTVirtualViewComponentView {
RCTScrollViewComponentView *_lastParentScrollViewComponentView;
std::optional<enum RCTVirtualViewMode> _mode;
enum RCTVirtualViewRenderState _renderState;
std::optional<RCTVirtualViewMode> _mode;
RCTVirtualViewRenderState _renderState;
std::optional<CGRect> _targetRect;
}
@@ -234,7 +224,7 @@ static BOOL sIsAccessibilityUsed = NO;
_targetRect = targetRect;
}
enum RCTVirtualViewMode newMode;
RCTVirtualViewMode newMode;
CGRect thresholdRect = CGRectMake(
scrollView.contentOffset.x,
scrollView.contentOffset.y,
@@ -278,7 +268,7 @@ static BOOL sIsAccessibilityUsed = NO;
.height = thresholdRect.size.height},
};
const std::optional<enum RCTVirtualViewMode> oldMode = _mode;
const std::optional<RCTVirtualViewMode> oldMode = _mode;
_mode = newMode;
switch (newMode) {
@@ -22,22 +22,12 @@
#import <react/renderer/components/virtualviewexperimental/VirtualViewExperimentalShadowNode.h>
#import "RCTFabricComponentsPlugins.h"
#import "RCTVirtualViewMode.h"
#import "RCTVirtualViewRenderState.h"
using namespace facebook;
using namespace facebook::react;
typedef NS_ENUM(NSInteger, RCTVirtualViewMode) {
RCTVirtualViewModeVisible = 0,
RCTVirtualViewModePrerender = 1,
RCTVirtualViewModeHidden = 2,
};
typedef NS_ENUM(NSInteger, RCTVirtualViewRenderState) {
RCTVirtualViewRenderStateUnknown = 0,
RCTVirtualViewRenderStateRendered = 1,
RCTVirtualViewRenderStateNone = 2,
};
/**
* Checks whether one CGRect overlaps with another CGRect.
*
@@ -72,8 +62,8 @@ static BOOL CGRectOverlaps(CGRect rect1, CGRect rect2)
@implementation RCTVirtualViewExperimentalComponentView {
RCTScrollViewComponentView *_lastParentScrollViewComponentView;
std::optional<enum RCTVirtualViewMode> _mode;
enum RCTVirtualViewRenderState _renderState;
std::optional<RCTVirtualViewMode> _mode;
RCTVirtualViewRenderState _renderState;
std::optional<CGRect> _targetRect;
}
@@ -234,7 +224,7 @@ static BOOL sIsAccessibilityUsed = NO;
_targetRect = targetRect;
}
enum RCTVirtualViewMode newMode;
RCTVirtualViewMode newMode;
CGRect thresholdRect = CGRectMake(
scrollView.contentOffset.x,
scrollView.contentOffset.y,
@@ -278,7 +268,7 @@ static BOOL sIsAccessibilityUsed = NO;
.height = thresholdRect.size.height},
};
const std::optional<enum RCTVirtualViewMode> oldMode = _mode;
const std::optional<RCTVirtualViewMode> oldMode = _mode;
_mode = newMode;
switch (newMode) {
@@ -0,0 +1,18 @@
/*
* 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.
*/
#import <Foundation/Foundation.h>
#ifndef RCTVirtualViewMode_h
#define RCTVirtualViewMode_h
// Enum for virtual view modes
using RCTVirtualViewMode = NS_ENUM(NSInteger){
RCTVirtualViewModeVisible = 0,
RCTVirtualViewModePrerender = 1,
RCTVirtualViewModeHidden = 2,
};
#endif /* RCTVirtualViewMode_h */
@@ -0,0 +1,17 @@
/*
* 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.
*/
#import <Foundation/Foundation.h>
#ifndef RCTVirtualViewRenderState_h
#define RCTVirtualViewRenderState_h
using RCTVirtualViewRenderState = NS_ENUM(NSInteger){
RCTVirtualViewRenderStateUnknown = 0,
RCTVirtualViewRenderStateRendered = 1,
RCTVirtualViewRenderStateNone = 2,
};
#endif /* RCTVirtualViewRenderState_h */