Revert D43500868: Expose UnstableReactLegacyComponentDescriptor inside react/renderer/components/legacyviewmanagerinterop
Differential Revision: D43500868 (071f6d2ca6
) Original commit changeset: acfcd89efc42 Original Phabricator Diff: D43500868 (071f6d2ca6
) fbshipit-source-id: bb354015b2dcc812491b0219c6dd4d9c6321dc0b
This commit is contained in:
Родитель
071f6d2ca6
Коммит
851c8c671a
|
@ -120,10 +120,6 @@ final def preparePrefab = tasks.register("preparePrefab", PreparePrefabHeadersTa
|
||||||
"rrc_view",
|
"rrc_view",
|
||||||
new Pair("../ReactCommon/react/renderer/components/view/", "react/renderer/components/view/")
|
new Pair("../ReactCommon/react/renderer/components/view/", "react/renderer/components/view/")
|
||||||
),
|
),
|
||||||
new PrefabPreprocessingEntry(
|
|
||||||
"rrc_legacyviewmanagerinterop",
|
|
||||||
new Pair("../ReactCommon/react/renderer/components/legacyviewmanagerinterop/", "react/renderer/components/legacyviewmanagerinterop/")
|
|
||||||
),
|
|
||||||
new PrefabPreprocessingEntry(
|
new PrefabPreprocessingEntry(
|
||||||
"jsi",
|
"jsi",
|
||||||
new Pair("../ReactCommon/jsi/", "")
|
new Pair("../ReactCommon/jsi/", "")
|
||||||
|
@ -489,7 +485,6 @@ android {
|
||||||
"rrc_image",
|
"rrc_image",
|
||||||
"rrc_root",
|
"rrc_root",
|
||||||
"rrc_view",
|
"rrc_view",
|
||||||
"rrc_legacyviewmanagerinterop",
|
|
||||||
"jsi",
|
"jsi",
|
||||||
"glog",
|
"glog",
|
||||||
"fabricjni",
|
"fabricjni",
|
||||||
|
@ -591,9 +586,6 @@ android {
|
||||||
rrc_view {
|
rrc_view {
|
||||||
headers(new File(prefabHeadersDir, "rrc_view").absolutePath)
|
headers(new File(prefabHeadersDir, "rrc_view").absolutePath)
|
||||||
}
|
}
|
||||||
rrc_legacyviewmanagerinterop {
|
|
||||||
headers(new File(prefabHeadersDir, "rrc_legacyviewmanagerinterop").absolutePath)
|
|
||||||
}
|
|
||||||
jsi {
|
jsi {
|
||||||
headers(new File(prefabHeadersDir, "jsi").absolutePath)
|
headers(new File(prefabHeadersDir, "jsi").absolutePath)
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,6 @@ add_library(folly_runtime ALIAS ReactAndroid::folly_runtime)
|
||||||
add_library(react_nativemodule_core ALIAS ReactAndroid::react_nativemodule_core)
|
add_library(react_nativemodule_core ALIAS ReactAndroid::react_nativemodule_core)
|
||||||
add_library(react_render_imagemanager ALIAS ReactAndroid::react_render_imagemanager)
|
add_library(react_render_imagemanager ALIAS ReactAndroid::react_render_imagemanager)
|
||||||
add_library(rrc_image ALIAS ReactAndroid::rrc_image)
|
add_library(rrc_image ALIAS ReactAndroid::rrc_image)
|
||||||
add_library(rrc_legacyviewmanagerinterop ALIAS ReactAndroid::rrc_legacyviewmanagerinterop)
|
|
||||||
|
|
||||||
find_package(fbjni REQUIRED CONFIG)
|
find_package(fbjni REQUIRED CONFIG)
|
||||||
add_library(fbjni ALIAS fbjni::fbjni)
|
add_library(fbjni ALIAS fbjni::fbjni)
|
||||||
|
@ -92,7 +91,6 @@ target_link_libraries(${CMAKE_PROJECT_NAME}
|
||||||
react_render_mapbuffer # prefab ready
|
react_render_mapbuffer # prefab ready
|
||||||
rrc_image # prefab ready
|
rrc_image # prefab ready
|
||||||
rrc_view # prefab ready
|
rrc_view # prefab ready
|
||||||
rrc_legacyviewmanagerinterop # prefab ready
|
|
||||||
runtimeexecutor # prefab ready
|
runtimeexecutor # prefab ready
|
||||||
turbomodulejsijni # prefab ready
|
turbomodulejsijni # prefab ready
|
||||||
yoga) # prefab ready
|
yoga) # prefab ready
|
||||||
|
|
|
@ -87,7 +87,6 @@ add_react_common_subdir(react/renderer/components/textinput)
|
||||||
add_react_common_subdir(react/renderer/components/progressbar)
|
add_react_common_subdir(react/renderer/components/progressbar)
|
||||||
add_react_common_subdir(react/renderer/components/root)
|
add_react_common_subdir(react/renderer/components/root)
|
||||||
add_react_common_subdir(react/renderer/components/image)
|
add_react_common_subdir(react/renderer/components/image)
|
||||||
add_react_common_subdir(react/renderer/components/legacyviewmanagerinterop)
|
|
||||||
add_react_common_subdir(react/renderer/componentregistry/native)
|
add_react_common_subdir(react/renderer/componentregistry/native)
|
||||||
add_react_common_subdir(react/renderer/components/text)
|
add_react_common_subdir(react/renderer/components/text)
|
||||||
add_react_common_subdir(react/renderer/components/unimplementedview)
|
add_react_common_subdir(react/renderer/components/unimplementedview)
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
# 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.
|
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.13)
|
|
||||||
set(CMAKE_VERBOSE_MAKEFILE on)
|
|
||||||
|
|
||||||
add_compile_options(
|
|
||||||
-fexceptions
|
|
||||||
-frtti
|
|
||||||
-std=c++17
|
|
||||||
-Wall
|
|
||||||
-Wpedantic
|
|
||||||
-Wno-gnu-zero-variadic-macro-arguments
|
|
||||||
-DLOG_TAG=\"Fabric\")
|
|
||||||
|
|
||||||
file(GLOB rrc_legacyviewmanagerinterop_SRC CONFIGURE_DEPENDS *.cpp)
|
|
||||||
add_library(rrc_legacyviewmanagerinterop SHARED ${rrc_legacyviewmanagerinterop_SRC})
|
|
||||||
|
|
||||||
target_include_directories(rrc_legacyviewmanagerinterop PUBLIC ${REACT_COMMON_DIR})
|
|
||||||
|
|
||||||
target_link_libraries(rrc_legacyviewmanagerinterop
|
|
||||||
glog
|
|
||||||
glog_init
|
|
||||||
folly_runtime
|
|
||||||
jsi
|
|
||||||
react_render_core
|
|
||||||
rrc_view
|
|
||||||
yoga
|
|
||||||
)
|
|
|
@ -1,38 +0,0 @@
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <react/renderer/components/view/ConcreteViewShadowNode.h>
|
|
||||||
#include <react/renderer/components/view/ViewProps.h>
|
|
||||||
#include <react/renderer/core/ConcreteComponentDescriptor.h>
|
|
||||||
|
|
||||||
namespace facebook {
|
|
||||||
namespace react {
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Descriptor for <UnstableReactLegacyComponent> component.
|
|
||||||
*
|
|
||||||
* This component is part of the Fabric Interop Layer and is subject to future
|
|
||||||
* changes (hence the "Unstable" prefix).
|
|
||||||
*/
|
|
||||||
template <const char *concreteComponentName>
|
|
||||||
class UnstableLegacyViewManagerInteropComponentDescriptor
|
|
||||||
: public ConcreteComponentDescriptor<
|
|
||||||
ConcreteViewShadowNode<concreteComponentName, ViewProps>> {
|
|
||||||
public:
|
|
||||||
UnstableLegacyViewManagerInteropComponentDescriptor<concreteComponentName>(
|
|
||||||
ComponentDescriptorParameters const ¶meters)
|
|
||||||
: ConcreteComponentDescriptor<
|
|
||||||
ConcreteViewShadowNode<concreteComponentName, ViewProps>>(
|
|
||||||
parameters) {}
|
|
||||||
|
|
||||||
private:
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace react
|
|
||||||
} // namespace facebook
|
|
|
@ -1,25 +0,0 @@
|
||||||
/**
|
|
||||||
* 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-local
|
|
||||||
* @format
|
|
||||||
*/
|
|
||||||
|
|
||||||
import type {HostComponent} from 'react-native';
|
|
||||||
import type {ViewProps} from 'react-native/Libraries/Components/View/ViewPropTypes';
|
|
||||||
import {requireNativeComponent} from 'react-native';
|
|
||||||
|
|
||||||
type NativeProps = $ReadOnly<{|
|
|
||||||
...ViewProps,
|
|
||||||
opacity?: number,
|
|
||||||
color?: string,
|
|
||||||
|}>;
|
|
||||||
|
|
||||||
export type MyLegacyViewType = HostComponent<NativeProps>;
|
|
||||||
|
|
||||||
export default (requireNativeComponent(
|
|
||||||
'RNTMyLegacyNativeView',
|
|
||||||
): HostComponent<NativeProps>);
|
|
|
@ -10,11 +10,10 @@
|
||||||
|
|
||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import {useRef, useState} from 'react';
|
import {useRef, useState} from 'react';
|
||||||
import {View, Button, Text} from 'react-native';
|
import {View, Button} from 'react-native';
|
||||||
import RNTMyNativeView, {
|
import RNTMyNativeView, {
|
||||||
Commands as RNTMyNativeViewCommands,
|
Commands as RNTMyNativeViewCommands,
|
||||||
} from './MyNativeViewNativeComponent';
|
} from './MyNativeViewNativeComponent';
|
||||||
import RNTMyLegacyNativeView from './MyLegacyViewNativeComponent';
|
|
||||||
import type {MyNativeViewType} from './MyNativeViewNativeComponent';
|
import type {MyNativeViewType} from './MyNativeViewNativeComponent';
|
||||||
|
|
||||||
const colors = [
|
const colors = [
|
||||||
|
@ -30,27 +29,18 @@ const colors = [
|
||||||
export default function MyNativeView(props: {}): React.Node {
|
export default function MyNativeView(props: {}): React.Node {
|
||||||
const ref = useRef<React.ElementRef<MyNativeViewType> | null>(null);
|
const ref = useRef<React.ElementRef<MyNativeViewType> | null>(null);
|
||||||
const [opacity, setOpacity] = useState(1.0);
|
const [opacity, setOpacity] = useState(1.0);
|
||||||
const [color, setColor] = useState('#000000');
|
|
||||||
return (
|
return (
|
||||||
<View style={{flex: 1}}>
|
<View style={{flex: 1}}>
|
||||||
<Text style={{color: 'red'}}>Fabric View</Text>
|
|
||||||
<RNTMyNativeView ref={ref} style={{flex: 1}} opacity={opacity} />
|
<RNTMyNativeView ref={ref} style={{flex: 1}} opacity={opacity} />
|
||||||
<Text style={{color: 'red'}}>Legacy View</Text>
|
|
||||||
<RNTMyLegacyNativeView
|
|
||||||
style={{flex: 1}}
|
|
||||||
opacity={opacity}
|
|
||||||
color={color}
|
|
||||||
/>
|
|
||||||
<Button
|
<Button
|
||||||
title="Change Background"
|
title="Change Background"
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
let newColor = colors[Math.floor(Math.random() * 5)];
|
if (ref.current) {
|
||||||
setColor(newColor);
|
RNTMyNativeViewCommands.callNativeMethodToChangeBackgroundColor(
|
||||||
RNTMyNativeViewCommands.callNativeMethodToChangeBackgroundColor(
|
ref.current,
|
||||||
// $FlowFixMe[incompatible-call]
|
colors[Math.floor(Math.random() * 5)],
|
||||||
ref.current,
|
);
|
||||||
newColor,
|
}
|
||||||
);
|
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
|
|
|
@ -22,12 +22,10 @@ import com.facebook.react.defaults.DefaultReactNativeHost;
|
||||||
import com.facebook.react.module.model.ReactModuleInfo;
|
import com.facebook.react.module.model.ReactModuleInfo;
|
||||||
import com.facebook.react.module.model.ReactModuleInfoProvider;
|
import com.facebook.react.module.model.ReactModuleInfoProvider;
|
||||||
import com.facebook.react.shell.MainReactPackage;
|
import com.facebook.react.shell.MainReactPackage;
|
||||||
import com.facebook.react.uiapp.component.MyLegacyViewManager;
|
|
||||||
import com.facebook.react.uiapp.component.MyNativeViewManager;
|
import com.facebook.react.uiapp.component.MyNativeViewManager;
|
||||||
import com.facebook.react.uimanager.ViewManager;
|
import com.facebook.react.uimanager.ViewManager;
|
||||||
import com.facebook.react.views.text.ReactFontManager;
|
import com.facebook.react.views.text.ReactFontManager;
|
||||||
import com.facebook.soloader.SoLoader;
|
import com.facebook.soloader.SoLoader;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -108,10 +106,7 @@ public class RNTesterApplication extends Application implements ReactApplication
|
||||||
@Override
|
@Override
|
||||||
public List<ViewManager> createViewManagers(
|
public List<ViewManager> createViewManagers(
|
||||||
@NonNull ReactApplicationContext reactContext) {
|
@NonNull ReactApplicationContext reactContext) {
|
||||||
List<ViewManager> viewManagers = new ArrayList<>();
|
return Collections.singletonList(new MyNativeViewManager());
|
||||||
viewManagers.add(new MyNativeViewManager());
|
|
||||||
viewManagers.add(new MyLegacyViewManager(reactContext));
|
|
||||||
return viewManagers;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,55 +0,0 @@
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.facebook.react.uiapp.component;
|
|
||||||
|
|
||||||
import android.graphics.Color;
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
|
||||||
import com.facebook.react.module.annotations.ReactModule;
|
|
||||||
import com.facebook.react.uimanager.SimpleViewManager;
|
|
||||||
import com.facebook.react.uimanager.ThemedReactContext;
|
|
||||||
import com.facebook.react.uimanager.ViewProps;
|
|
||||||
import com.facebook.react.uimanager.annotations.ReactProp;
|
|
||||||
|
|
||||||
/** Legacy View manager (non Fabric compatible) for {@link MyNativeView} components. */
|
|
||||||
@ReactModule(name = MyLegacyViewManager.REACT_CLASS)
|
|
||||||
public class MyLegacyViewManager extends SimpleViewManager<MyNativeView> {
|
|
||||||
|
|
||||||
public static final String REACT_CLASS = "RNTMyLegacyNativeView";
|
|
||||||
private final ReactApplicationContext mCallerContext;
|
|
||||||
|
|
||||||
public MyLegacyViewManager(ReactApplicationContext reactContext) {
|
|
||||||
mCallerContext = reactContext;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return REACT_CLASS;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
@Override
|
|
||||||
protected MyNativeView createViewInstance(@NonNull ThemedReactContext reactContext) {
|
|
||||||
MyNativeView view = new MyNativeView(reactContext);
|
|
||||||
view.setBackgroundColor(Color.RED);
|
|
||||||
return view;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@ReactProp(name = ViewProps.OPACITY, defaultFloat = 1.f)
|
|
||||||
public void setOpacity(@NonNull MyNativeView view, float opacity) {
|
|
||||||
super.setOpacity(view, opacity);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ReactProp(name = ViewProps.COLOR)
|
|
||||||
public void setColor(@NonNull MyNativeView view, @Nullable String color) {
|
|
||||||
view.setBackgroundColor(Color.parseColor(color));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -13,21 +13,15 @@
|
||||||
#include <fbjni/fbjni.h>
|
#include <fbjni/fbjni.h>
|
||||||
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
|
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
|
||||||
#include <react/renderer/components/AppSpecs/ComponentDescriptors.h>
|
#include <react/renderer/components/AppSpecs/ComponentDescriptors.h>
|
||||||
#include <react/renderer/components/legacyviewmanagerinterop/UnstableLegacyViewManagerInteropComponentDescriptor.h>
|
|
||||||
#include <rncore.h>
|
#include <rncore.h>
|
||||||
|
|
||||||
namespace facebook {
|
namespace facebook {
|
||||||
namespace react {
|
namespace react {
|
||||||
|
|
||||||
extern const char RNTMyNativeViewName[] = "RNTMyLegacyNativeView";
|
|
||||||
|
|
||||||
void registerComponents(
|
void registerComponents(
|
||||||
std::shared_ptr<ComponentDescriptorProviderRegistry const> registry) {
|
std::shared_ptr<ComponentDescriptorProviderRegistry const> registry) {
|
||||||
registry->add(concreteComponentDescriptorProvider<
|
registry->add(concreteComponentDescriptorProvider<
|
||||||
RNTMyNativeViewComponentDescriptor>());
|
RNTMyNativeViewComponentDescriptor>());
|
||||||
registry->add(concreteComponentDescriptorProvider<
|
|
||||||
UnstableLegacyViewManagerInteropComponentDescriptor<
|
|
||||||
RNTMyNativeViewName>>());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<TurboModule> cxxModuleProvider(
|
std::shared_ptr<TurboModule> cxxModuleProvider(
|
||||||
|
|
Загрузка…
Ссылка в новой задаче