Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions packages/react-native/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ let CallInvokerPath = "ReactCommon/callinvoker" // header only target
let ReactFBReactNativeSpecPath = "React/FBReactNativeSpec" // generated
let FBLazyVectorPath = "Libraries/FBLazyVector" // header only
let virtualViewPath = "ReactCommon/react/renderer/components/virtualview" // header only
let virtualViewExperimentalPath = "ReactCommon/react/renderer/components/virtualviewexperimental" // header only

// MARK: Prebuilt Dependencies declaration
let reactNativeDependencies = BinaryTarget(
Expand Down Expand Up @@ -454,7 +453,6 @@ let reactFabric = RNTarget(
"components/textinput/platform/ios/",
"components/unimplementedview",
"components/virtualview",
"components/virtualviewexperimental",
"components/root/tests",
],
dependencies: [.reactNativeDependencies, .reactJsiExecutor, .rctTypesafety, .reactTurboModuleCore, .jsi, .logger, .reactDebug, .reactFeatureFlags, .reactUtils, .reactRuntimeScheduler, .reactCxxReact, .reactRendererDebug, .reactGraphics, .yoga],
Expand Down Expand Up @@ -541,7 +539,7 @@ let reactFabricUnimplementedView = RNTarget(
let reactRCTFabric = RNTarget(
name: .reactRCTFabric,
path: "React/Fabric",
searchPaths: [virtualViewPath, virtualViewExperimentalPath],
searchPaths: [virtualViewPath],
dependencies: [.reactNativeDependencies, .reactCore, .reactRCTImage, .yoga, .reactRCTText, .jsi, .reactFabricInputAccessory, .reactFabricModal, .reactFabricSafeAreaView, .reactFabricSwitch, .reactFabricText, .reactFabricTextInput, .reactFabricUnimplementedView, .reactFabricTextLayoutManager, .reactGraphics, .reactImageManager, .reactDebug, .reactUtils, .reactPerformanceTimeline, .reactRendererDebug, .reactRendererConsistency, .reactRuntimeScheduler, .reactRCTAnimation, .reactJsInspector, .reactJsInspectorNetwork, .reactJsInspectorTracing, .reactFabric, .reactFabricImage, .rctSwiftUIWrapper]
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

NS_ASSUME_NONNULL_BEGIN

@interface RCTVirtualViewExperimentalComponentView : RCTViewComponentView <RCTVirtualViewProtocol>
@interface RCTVirtualViewComponentView : RCTViewComponentView <RCTVirtualViewProtocol>

+ (instancetype)new NS_UNAVAILABLE;
- (instancetype)init NS_UNAVAILABLE;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

#import "RCTVirtualViewExperimentalComponentView.h"
#import "RCTVirtualViewComponentView.h"

#import <React/RCTAssert.h>
#import <React/RCTConversions.h>
Expand All @@ -20,8 +20,8 @@
#import <react/renderer/components/FBReactNativeSpec/ComponentDescriptors.h>
#import <react/renderer/components/FBReactNativeSpec/EventEmitters.h>
#import <react/renderer/components/FBReactNativeSpec/Props.h>
#import <react/renderer/components/virtualviewexperimental/VirtualViewExperimentalComponentDescriptor.h>
#import <react/renderer/components/virtualviewexperimental/VirtualViewExperimentalShadowNode.h>
#import <react/renderer/components/virtualview/VirtualViewComponentDescriptor.h>
#import <react/renderer/components/virtualview/VirtualViewShadowNode.h>

#import "RCTFabricComponentsPlugins.h"
#import "RCTVirtualViewMode.h"
Expand All @@ -30,13 +30,13 @@
using namespace facebook;
using namespace facebook::react;

@interface RCTVirtualViewExperimentalComponentView () {
@interface RCTVirtualViewComponentView () {
NSString *_virtualViewID;
}

@end

@implementation RCTVirtualViewExperimentalComponentView {
@implementation RCTVirtualViewComponentView {
id<RCTVirtualViewContainerProtocol> _parentVirtualViewContainer;
std::optional<RCTVirtualViewMode> _mode;
RCTVirtualViewRenderState _renderState;
Expand All @@ -50,7 +50,7 @@ @implementation RCTVirtualViewExperimentalComponentView {
- (instancetype)initWithFrame:(CGRect)frame
{
if ((self = [super initWithFrame:frame]) != nil) {
_props = VirtualViewExperimentalShadowNode::defaultSharedProps();
_props = VirtualViewShadowNode::defaultSharedProps();
_renderState = RCTVirtualViewRenderStateUnknown;
_virtualViewID = [[NSUUID UUID] UUIDString];
_didLayout = NO;
Expand All @@ -61,7 +61,7 @@ - (instancetype)initWithFrame:(CGRect)frame

- (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &)oldProps
{
const auto &newViewProps = static_cast<const VirtualViewExperimentalProps &>(*props);
const auto &newViewProps = static_cast<const VirtualViewProps &>(*props);

if (!_mode.has_value()) {
_mode = newViewProps.initialHidden ? RCTVirtualViewModeHidden : RCTVirtualViewModeVisible;
Expand Down Expand Up @@ -177,7 +177,7 @@ - (void)onModeChange:(RCTVirtualViewMode)newMode targetRect:(CGRect)targetRect t

// NOTE: Make sure to keep these props in sync with dispatchSyncModeChange below where we have to explicitly copy
// all props.
VirtualViewExperimentalEventEmitter::OnModeChange event = {
VirtualViewEventEmitter::OnModeChange event = {
.mode = (int)newMode,
.targetRect =
{.x = targetRect.origin.x,
Expand Down Expand Up @@ -260,23 +260,23 @@ - (void)_unhideIfNeeded
return nil;
}

- (void)_dispatchAsyncModeChange:(VirtualViewExperimentalEventEmitter::OnModeChange &)event
- (void)_dispatchAsyncModeChange:(VirtualViewEventEmitter::OnModeChange &)event
{
if (!_eventEmitter) {
return;
}

auto &emitter = static_cast<const VirtualViewExperimentalEventEmitter &>(*_eventEmitter);
auto &emitter = static_cast<const VirtualViewEventEmitter &>(*_eventEmitter);
emitter.onModeChange(event);
}

- (void)_dispatchSyncModeChange:(VirtualViewExperimentalEventEmitter::OnModeChange &)event
- (void)_dispatchSyncModeChange:(VirtualViewEventEmitter::OnModeChange &)event
{
if (!_eventEmitter) {
return;
}

auto &emitter = static_cast<const VirtualViewExperimentalEventEmitter &>(*_eventEmitter);
auto &emitter = static_cast<const VirtualViewEventEmitter &>(*_eventEmitter);

// TODO: Move this into a custom event emitter. We had to duplicate the codegen code here from onModeChange in order
// to dispatch synchronously and discrete.
Expand Down Expand Up @@ -310,12 +310,12 @@ - (void)_dispatchSyncModeChange:(VirtualViewExperimentalEventEmitter::OnModeChan

+ (ComponentDescriptorProvider)componentDescriptorProvider
{
return concreteComponentDescriptorProvider<VirtualViewExperimentalComponentDescriptor>();
return concreteComponentDescriptorProvider<VirtualViewComponentDescriptor>();
}

@end

Class<RCTComponentViewProtocol> VirtualViewExperimentalCls(void)
Class<RCTComponentViewProtocol> VirtualViewCls(void)
{
return RCTVirtualViewExperimentalComponentView.class;
return RCTVirtualViewComponentView.class;
}
16 changes: 8 additions & 8 deletions packages/react-native/ReactAndroid/api/ReactAndroid.api
Original file line number Diff line number Diff line change
Expand Up @@ -6702,7 +6702,7 @@ public final class com/facebook/react/views/virtual/VirtualViewMode : java/lang/
public static fun values ()[Lcom/facebook/react/views/virtual/VirtualViewMode;
}

public final class com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental : com/facebook/react/views/view/ReactViewGroup, android/view/View$OnLayoutChangeListener, com/facebook/react/views/scroll/VirtualView {
public final class com/facebook/react/views/virtual/view/ReactVirtualView : com/facebook/react/views/view/ReactViewGroup, android/view/View$OnLayoutChangeListener, com/facebook/react/views/scroll/VirtualView {
public fun <init> (Landroid/content/Context;)V
public fun getContainerRelativeRect ()Landroid/graphics/Rect;
public fun getVirtualViewID ()Ljava/lang/String;
Expand All @@ -6712,27 +6712,27 @@ public final class com/facebook/react/views/virtual/viewexperimental/ReactVirtua
public fun updateClippingRect (Ljava/util/Set;)V
}

public final class com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimentalManager : com/facebook/react/views/view/ReactClippingViewManager, com/facebook/react/viewmanagers/VirtualViewExperimentalManagerInterface {
public static final field Companion Lcom/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimentalManager$Companion;
public final class com/facebook/react/views/virtual/view/ReactVirtualViewManager : com/facebook/react/views/view/ReactClippingViewManager, com/facebook/react/viewmanagers/VirtualViewManagerInterface {
public static final field Companion Lcom/facebook/react/views/virtual/view/ReactVirtualViewManager$Companion;
public static final field REACT_CLASS Ljava/lang/String;
public fun <init> ()V
public synthetic fun addEventEmitters (Lcom/facebook/react/uimanager/ThemedReactContext;Landroid/view/View;)V
public synthetic fun createViewInstance (Lcom/facebook/react/uimanager/ThemedReactContext;)Landroid/view/View;
public fun getName ()Ljava/lang/String;
public synthetic fun prepareToRecycleView (Lcom/facebook/react/uimanager/ThemedReactContext;Landroid/view/View;)Landroid/view/View;
public synthetic fun setInitialHidden (Landroid/view/View;Z)V
public fun setInitialHidden (Lcom/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental;Z)V
public fun setInitialHidden (Lcom/facebook/react/views/virtual/view/ReactVirtualView;Z)V
public synthetic fun setNativeId (Landroid/view/View;Ljava/lang/String;)V
public fun setNativeId (Lcom/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental;Ljava/lang/String;)V
public fun setNativeId (Lcom/facebook/react/views/virtual/view/ReactVirtualView;Ljava/lang/String;)V
public synthetic fun setRemoveClippedSubviews (Landroid/view/View;Z)V
public synthetic fun setRenderState (Landroid/view/View;I)V
public fun setRenderState (Lcom/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental;I)V
public fun setRenderState (Lcom/facebook/react/views/virtual/view/ReactVirtualView;I)V
}

public final class com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimentalManager$Companion {
public final class com/facebook/react/views/virtual/view/ReactVirtualViewManager$Companion {
}

public final class com/facebook/react/views/virtual/viewexperimental/VirtualViewEventEmitter : com/facebook/react/views/virtual/VirtualViewModeChangeEmitter {
public final class com/facebook/react/views/virtual/view/VirtualViewEventEmitter : com/facebook/react/views/virtual/VirtualViewModeChangeEmitter {
public fun <init> (IILcom/facebook/react/uimanager/events/EventDispatcher;)V
public fun emitModeChange (Lcom/facebook/react/views/virtual/VirtualViewMode;Landroid/graphics/Rect;Landroid/graphics/Rect;Z)V
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

package com.facebook.react.views.virtual.viewexperimental
package com.facebook.react.views.virtual.view

import android.content.Context
import android.graphics.Rect
Expand All @@ -25,7 +25,7 @@ import com.facebook.react.views.virtual.VirtualViewMode
import com.facebook.react.views.virtual.VirtualViewModeChangeEmitter
import com.facebook.react.views.virtual.VirtualViewRenderState

public class ReactVirtualViewExperimental(context: Context) :
public class ReactVirtualView(context: Context) :
ReactViewGroup(context), VirtualView, View.OnLayoutChangeListener {

internal var mode: VirtualViewMode? = null
Expand Down Expand Up @@ -300,6 +300,6 @@ public class ReactVirtualViewExperimental(context: Context) :
}
}

private const val DEBUG_TAG: String = "ReactVirtualViewExperimental"
private const val DEBUG_TAG: String = "ReactVirtualView"
private val IS_DEBUG_BUILD =
ReactBuildConfig.DEBUG || ReactBuildConfig.IS_INTERNAL_BUILD || ReactBuildConfig.ENABLE_PERFETTO
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* LICENSE file in the root directory of this source tree.
*/

package com.facebook.react.views.virtual.viewexperimental
package com.facebook.react.views.virtual.view

import android.graphics.Rect
import androidx.annotation.VisibleForTesting
Expand All @@ -16,37 +16,36 @@ import com.facebook.react.uimanager.UIManagerHelper
import com.facebook.react.uimanager.ViewManagerDelegate
import com.facebook.react.uimanager.annotations.ReactProp
import com.facebook.react.uimanager.events.EventDispatcher
import com.facebook.react.viewmanagers.VirtualViewExperimentalManagerDelegate
import com.facebook.react.viewmanagers.VirtualViewExperimentalManagerInterface
import com.facebook.react.viewmanagers.VirtualViewManagerDelegate
import com.facebook.react.viewmanagers.VirtualViewManagerInterface
import com.facebook.react.views.view.ReactClippingViewManager
import com.facebook.react.views.virtual.VirtualViewMode
import com.facebook.react.views.virtual.VirtualViewModeChangeEmitter
import com.facebook.react.views.virtual.VirtualViewModeChangeEvent
import com.facebook.react.views.virtual.VirtualViewRenderState

@ReactModule(name = ReactVirtualViewExperimentalManager.REACT_CLASS)
public class ReactVirtualViewExperimentalManager :
ReactClippingViewManager<ReactVirtualViewExperimental>(),
VirtualViewExperimentalManagerInterface<ReactVirtualViewExperimental> {
@ReactModule(name = ReactVirtualViewManager.REACT_CLASS)
public class ReactVirtualViewManager :
ReactClippingViewManager<ReactVirtualView>(), VirtualViewManagerInterface<ReactVirtualView> {

private val _delegate = VirtualViewExperimentalManagerDelegate(this)
private val _delegate = VirtualViewManagerDelegate(this)

override fun getDelegate(): ViewManagerDelegate<ReactVirtualViewExperimental> = _delegate
override fun getDelegate(): ViewManagerDelegate<ReactVirtualView> = _delegate

override fun getName(): String = REACT_CLASS

override fun createViewInstance(reactContext: ThemedReactContext): ReactVirtualViewExperimental =
ReactVirtualViewExperimental(reactContext)
override fun createViewInstance(reactContext: ThemedReactContext): ReactVirtualView =
ReactVirtualView(reactContext)

@ReactProp(name = "initialHidden")
override fun setInitialHidden(view: ReactVirtualViewExperimental, value: Boolean) {
override fun setInitialHidden(view: ReactVirtualView, value: Boolean) {
if (view.mode == null) {
view.mode = if (value) VirtualViewMode.Hidden else VirtualViewMode.Visible
}
}

@ReactProp(name = "renderState")
override fun setRenderState(view: ReactVirtualViewExperimental, value: Int) {
override fun setRenderState(view: ReactVirtualView, value: Int) {
// If disabled, `renderState` will always be `VirtualViewRenderState.Unknown`.
if (ReactNativeFeatureFlags.enableVirtualViewRenderState()) {
view.renderState =
Expand All @@ -58,13 +57,13 @@ public class ReactVirtualViewExperimentalManager :
}
}

override fun setNativeId(view: ReactVirtualViewExperimental, nativeId: String?) {
override fun setNativeId(view: ReactVirtualView, nativeId: String?) {
super.setNativeId(view, nativeId)
}

override fun addEventEmitters(
reactContext: ThemedReactContext,
view: ReactVirtualViewExperimental,
view: ReactVirtualView,
) {
val dispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, view.id) ?: return
view.modeChangeEmitter =
Expand All @@ -73,14 +72,14 @@ public class ReactVirtualViewExperimentalManager :

override fun prepareToRecycleView(
reactContext: ThemedReactContext,
view: ReactVirtualViewExperimental,
): ReactVirtualViewExperimental? {
view: ReactVirtualView,
): ReactVirtualView? {
view.recycleView()
return super.prepareToRecycleView(reactContext, view)
}

public companion object {
public const val REACT_CLASS: String = "VirtualViewExperimental"
public const val REACT_CLASS: String = "VirtualView"
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#include <react/renderer/components/text/TextComponentDescriptor.h>
#include <react/renderer/components/view/LayoutConformanceComponentDescriptor.h>
#include <react/renderer/components/view/ViewComponentDescriptor.h>
#include <react/renderer/components/virtualviewexperimental/VirtualViewExperimentalComponentDescriptor.h>
#include <react/renderer/components/virtualview/VirtualViewComponentDescriptor.h>

namespace facebook::react::CoreComponentsRegistry {

Expand Down Expand Up @@ -81,8 +81,7 @@ void addCoreComponents(
concreteComponentDescriptorProvider<
LayoutConformanceComponentDescriptor>());
providerRegistry->add(
concreteComponentDescriptorProvider<
VirtualViewExperimentalComponentDescriptor>());
concreteComponentDescriptorProvider<VirtualViewComponentDescriptor>());
}

} // namespace facebook::react::CoreComponentsRegistry
Original file line number Diff line number Diff line change
Expand Up @@ -149,12 +149,6 @@ Pod::Spec.new do |s|
sss.header_dir = "react/renderer/components/virtualview"
end

ss.subspec "virtualviewexperimental" do |sss|
sss.source_files = "react/renderer/components/virtualviewexperimental/**/*.{m,mm,cpp,h}"
sss.exclude_files = "react/renderer/components/virtualviewexperimental/tests"
sss.header_dir = "react/renderer/components/virtualviewexperimental"
end

# Legacy header paths for backwards compat
ss.subspec "rncore" do |sss|
sss.source_files = podspec_sources("react/renderer/components/rncore/**/*.h", "react/renderer/components/rncore/**/*.h")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@

#pragma once

#include <react/renderer/components/virtualviewexperimental/VirtualViewExperimentalShadowNode.h>
#include <react/renderer/components/virtualview/VirtualViewShadowNode.h>
#include <react/renderer/core/ConcreteComponentDescriptor.h>

namespace facebook::react {

/*
* Descriptor for <VirtualView2> component.
*/
using VirtualViewExperimentalComponentDescriptor = ConcreteComponentDescriptor<VirtualViewExperimentalShadowNode>;
using VirtualViewComponentDescriptor = ConcreteComponentDescriptor<VirtualViewShadowNode>;
} // namespace facebook::react
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,13 @@

namespace facebook::react {

constexpr const char VirtualViewExperimentalComponentName[] = "VirtualViewExperimental";
constexpr const char VirtualViewComponentName[] = "VirtualView";

/*
* `ShadowNode` for <VirtualViewExperimental> component.
* `ShadowNode` for <VirtualView> component.
*/
class VirtualViewExperimentalShadowNode final : public ConcreteViewShadowNode<
VirtualViewExperimentalComponentName,
VirtualViewExperimentalProps,
VirtualViewExperimentalEventEmitter> {
class VirtualViewShadowNode final
: public ConcreteViewShadowNode<VirtualViewComponentName, VirtualViewProps, VirtualViewEventEmitter> {
public:
using ConcreteViewShadowNode::ConcreteViewShadowNode;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import type {ViewStyleProp} from '../../../../Libraries/StyleSheet/StyleSheet';
import type {NativeSyntheticEvent} from '../../../../Libraries/Types/CoreEventTypes';
import type {HostInstance} from '../../types/HostInstance';
import type {NativeModeChangeEvent} from './VirtualViewExperimentalNativeComponent';
import type {NativeModeChangeEvent} from './VirtualViewNativeComponent';

import UIManager from '../../../../Libraries/ReactNative/UIManager';
import StyleSheet from '../../../../Libraries/StyleSheet/StyleSheet';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import '@react-native/fantom/src/setUpDefaultReactNativeEnvironment';

import type {Rect} from '../VirtualView';
import type {NativeModeChangeEvent} from '../VirtualViewExperimentalNativeComponent';
import type {NativeModeChangeEvent} from '../VirtualViewNativeComponent';

import ensureInstance from '../../../__tests__/utilities/ensureInstance';
import isUnreachable from '../../../__tests__/utilities/isUnreachable';
Expand Down
Loading
Loading