You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c2e6df9
Browse filesBrowse the repository at this point in the historyBrowse files
Make LayoutConformance component headers for-frameworks
Summary:
Move `LayoutConformanceComponentDescriptor.h`, `LayoutConformanceProps.h` and `LayoutConformanceShadowNode.h` from the public tier of the C++ stable API to the for-frameworks tier, and remove them from the `<React/View.h>` umbrella.
These headers implement the experimental `LayoutConformance` core component. Native component authors do not use them, but a platform that registers React Native's core components does: `YogaLayoutableShadowNode::resolveErrata` checks for `LayoutConformanceShadowNode` with a `dynamic_cast` to choose the Yoga errata, so a platform has to register React Native's own descriptor for the component to have any effect. That makes them framework-author API rather than private headers. The `LayoutConformance` enum and its conversions stay public in `primitives.h` and `conversions.h`.
A for-frameworks header has to reach public headers through their umbrella, so the three headers now include `<React/View.h>` and `<React/RendererCore.h>` instead of fine-grained paths, and compile when included directly under strict API enforcement. `LayoutConformanceProps.h` was the only umbrella member that included the public `conversions.h`, so `conversions.h` is added to `<React/View.h>` directly to keep it available through the umbrella.
No build files change: the headers stay published, because React Native's own core component registries outside this module include them.
Changelog: [Internal]
Differential Revision: D123895702
@@ -424,7 +423,6 @@ using facebook::react::GradientDirection = std::variant<facebook::react::Float,
424
423
using facebook::react::HostPlatformTouch = facebook::react::BaseTouch;
425
424
using facebook::react::HostPlatformViewEventEmitter = facebook::react::BaseViewEventEmitter;
426
425
using facebook::react::ImageSources = std::vector<facebook::react::ImageSource>;
427
-
using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor<facebook::react::LayoutConformanceShadowNode>;
428
426
using facebook::react::ModalHostViewSupportedOrientationsMask = uint32_t;
429
427
using facebook::react::NativeMethodCallFunc = std::function<void()>;
430
428
using facebook::react::PromiseSetupFunctionType = std::function<void(facebook::jsi::Runtime& rt, std::shared_ptr<facebook::react::Promise>)>;
class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode<facebook::react::LayoutConformanceShadowNodeComponentName, facebook::react::YogaLayoutableShadowNode, facebook::react::LayoutConformanceProps> {
1734
-
}
1735
-
1736
1731
class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode {
1737
1732
public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment);
1738
1733
public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits);
@@ -3400,12 +3395,6 @@ struct facebook::react::JTurboModuleWithJSIBindings : public facebook::jni::Java
3400
3395
public static constexpr auto kJavaDescriptor;
3401
3396
}
3402
3397
3403
-
struct facebook::react::LayoutConformanceProps : public facebook::react::YogaStylableProps {
3404
-
public LayoutConformanceProps() = default;
3405
-
public LayoutConformanceProps(const facebook::react::PropsParserContext& context, const facebook::react::LayoutConformanceProps& sourceProps, const facebook::react::RawProps& rawProps);
3406
-
public facebook::react::LayoutConformance mode;
3407
-
}
3408
-
3409
3398
struct facebook::react::LayoutConstraints {
3410
3399
public facebook::react::LayoutDirection layoutDirection;
3411
3400
public facebook::react::Size clamp(const facebook::react::Size& size) const;
@@ -424,7 +423,6 @@ using facebook::react::GradientDirection = std::variant<facebook::react::Float,
424
423
using facebook::react::HostPlatformTouch = facebook::react::BaseTouch;
425
424
using facebook::react::HostPlatformViewEventEmitter = facebook::react::BaseViewEventEmitter;
426
425
using facebook::react::ImageSources = std::vector<facebook::react::ImageSource>;
427
-
using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor<facebook::react::LayoutConformanceShadowNode>;
428
426
using facebook::react::ModalHostViewSupportedOrientationsMask = uint32_t;
429
427
using facebook::react::NativeMethodCallFunc = std::function<void()>;
430
428
using facebook::react::PromiseSetupFunctionType = std::function<void(facebook::jsi::Runtime& rt, std::shared_ptr<facebook::react::Promise>)>;
class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode<facebook::react::LayoutConformanceShadowNodeComponentName, facebook::react::YogaLayoutableShadowNode, facebook::react::LayoutConformanceProps> {
1733
-
}
1734
-
1735
1730
class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode {
1736
1731
public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment);
1737
1732
public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits);
@@ -3393,12 +3388,6 @@ struct facebook::react::JTurboModuleWithJSIBindings : public facebook::jni::Java
3393
3388
public static constexpr auto kJavaDescriptor;
3394
3389
}
3395
3390
3396
-
struct facebook::react::LayoutConformanceProps : public facebook::react::YogaStylableProps {
3397
-
public LayoutConformanceProps() = default;
3398
-
public LayoutConformanceProps(const facebook::react::PropsParserContext& context, const facebook::react::LayoutConformanceProps& sourceProps, const facebook::react::RawProps& rawProps);
3399
-
public facebook::react::LayoutConformance mode;
3400
-
}
3401
-
3402
3391
struct facebook::react::LayoutConstraints {
3403
3392
public facebook::react::LayoutDirection layoutDirection;
3404
3393
public facebook::react::Size clamp(const facebook::react::Size& size) const;
@@ -424,7 +423,6 @@ using facebook::react::GradientDirection = std::variant<facebook::react::Float,
424
423
using facebook::react::HostPlatformTouch = facebook::react::BaseTouch;
425
424
using facebook::react::HostPlatformViewEventEmitter = facebook::react::BaseViewEventEmitter;
426
425
using facebook::react::ImageSources = std::vector<facebook::react::ImageSource>;
427
-
using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor<facebook::react::LayoutConformanceShadowNode>;
428
426
using facebook::react::ModalHostViewSupportedOrientationsMask = uint32_t;
429
427
using facebook::react::NativeMethodCallFunc = std::function<void()>;
430
428
using facebook::react::PromiseSetupFunctionType = std::function<void(facebook::jsi::Runtime& rt, std::shared_ptr<facebook::react::Promise>)>;
class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode<facebook::react::LayoutConformanceShadowNodeComponentName, facebook::react::YogaLayoutableShadowNode, facebook::react::LayoutConformanceProps> {
1733
-
}
1734
-
1735
1730
class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode {
1736
1731
public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment);
1737
1732
public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits);
@@ -3393,12 +3388,6 @@ struct facebook::react::JTurboModuleWithJSIBindings : public facebook::jni::Java
3393
3388
public static constexpr auto kJavaDescriptor;
3394
3389
}
3395
3390
3396
-
struct facebook::react::LayoutConformanceProps : public facebook::react::YogaStylableProps {
3397
-
public LayoutConformanceProps() = default;
3398
-
public LayoutConformanceProps(const facebook::react::PropsParserContext& context, const facebook::react::LayoutConformanceProps& sourceProps, const facebook::react::RawProps& rawProps);
3399
-
public facebook::react::LayoutConformance mode;
3400
-
}
3401
-
3402
3391
struct facebook::react::LayoutConstraints {
3403
3392
public facebook::react::LayoutDirection layoutDirection;
3404
3393
public facebook::react::Size clamp(const facebook::react::Size& size) const;
@@ -3210,7 +3209,6 @@ using facebook::react::GradientDirection = std::variant<facebook::react::Float,
3210
3209
using facebook::react::HostPlatformTouch = facebook::react::BaseTouch;
3211
3210
using facebook::react::HostPlatformViewEventEmitter = facebook::react::BaseViewEventEmitter;
3212
3211
using facebook::react::ImageSources = std::vector<facebook::react::ImageSource>;
3213
-
using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor<facebook::react::LayoutConformanceShadowNode>;
3214
3212
using facebook::react::ModalHostViewSupportedOrientationsMask = uint32_t;
3215
3213
using facebook::react::NativeMethodCallFunc = std::function<void()>;
3216
3214
using facebook::react::PromiseSetupFunctionType = std::function<void(facebook::jsi::Runtime& rt, std::shared_ptr<facebook::react::Promise>)>;
@@ -4024,9 +4022,6 @@ class facebook::react::JSBigString : public facebook::jsi::Buffer {
4024
4022
public ~JSBigString() override = default;
4025
4023
}
4026
4024
4027
-
class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode<facebook::react::LayoutConformanceShadowNodeComponentName, facebook::react::YogaLayoutableShadowNode, facebook::react::LayoutConformanceProps> {
4028
-
}
4029
-
4030
4025
class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode {
4031
4026
public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment);
4032
4027
public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits);
@@ -3202,7 +3201,6 @@ using facebook::react::GradientDirection = std::variant<facebook::react::Float,
3202
3201
using facebook::react::HostPlatformTouch = facebook::react::BaseTouch;
3203
3202
using facebook::react::HostPlatformViewEventEmitter = facebook::react::BaseViewEventEmitter;
3204
3203
using facebook::react::ImageSources = std::vector<facebook::react::ImageSource>;
3205
-
using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor<facebook::react::LayoutConformanceShadowNode>;
3206
3204
using facebook::react::ModalHostViewSupportedOrientationsMask = uint32_t;
3207
3205
using facebook::react::NativeMethodCallFunc = std::function<void()>;
3208
3206
using facebook::react::PromiseSetupFunctionType = std::function<void(facebook::jsi::Runtime& rt, std::shared_ptr<facebook::react::Promise>)>;
@@ -4015,9 +4013,6 @@ class facebook::react::JSBigString : public facebook::jsi::Buffer {
4015
4013
public ~JSBigString() override = default;
4016
4014
}
4017
4015
4018
-
class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode<facebook::react::LayoutConformanceShadowNodeComponentName, facebook::react::YogaLayoutableShadowNode, facebook::react::LayoutConformanceProps> {
4019
-
}
4020
-
4021
4016
class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode {
4022
4017
public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment);
4023
4018
public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits);
@@ -3210,7 +3209,6 @@ using facebook::react::GradientDirection = std::variant<facebook::react::Float,
3210
3209
using facebook::react::HostPlatformTouch = facebook::react::BaseTouch;
3211
3210
using facebook::react::HostPlatformViewEventEmitter = facebook::react::BaseViewEventEmitter;
3212
3211
using facebook::react::ImageSources = std::vector<facebook::react::ImageSource>;
3213
-
using facebook::react::LayoutConformanceComponentDescriptor = facebook::react::ConcreteComponentDescriptor<facebook::react::LayoutConformanceShadowNode>;
3214
3212
using facebook::react::ModalHostViewSupportedOrientationsMask = uint32_t;
3215
3213
using facebook::react::NativeMethodCallFunc = std::function<void()>;
3216
3214
using facebook::react::PromiseSetupFunctionType = std::function<void(facebook::jsi::Runtime& rt, std::shared_ptr<facebook::react::Promise>)>;
@@ -4023,9 +4021,6 @@ class facebook::react::JSBigString : public facebook::jsi::Buffer {
4023
4021
public ~JSBigString() override = default;
4024
4022
}
4025
4023
4026
-
class facebook::react::LayoutConformanceShadowNode : public facebook::react::ConcreteShadowNode<facebook::react::LayoutConformanceShadowNodeComponentName, facebook::react::YogaLayoutableShadowNode, facebook::react::LayoutConformanceProps> {
4027
-
}
4028
-
4029
4024
class facebook::react::LayoutableShadowNode : public facebook::react::ShadowNode {
4030
4025
public LayoutableShadowNode(const facebook::react::ShadowNode& sourceShadowNode, const facebook::react::ShadowNodeFragment& fragment);
4031
4026
public LayoutableShadowNode(const facebook::react::ShadowNodeFragment& fragment, const facebook::react::ShadowNodeFamily::Shared& family, facebook::react::ShadowNodeTraits traits);
0 commit comments