Fabric: Default support of `displayType` and `layoutDirection` layout metrics
Summary: @public Quite trivial. Reviewed By: mdvacca Differential Revision: D8528922 fbshipit-source-id: 1e21f988317eecc7aa659fd9b51600b9e2b7d69f
This commit is contained in:
parent
803c14bd98
commit
36c052ad96
|
@ -10,6 +10,8 @@
|
|||
#import <React/RCTAssert.h>
|
||||
#import "RCTConversions.h"
|
||||
|
||||
using namespace facebook::react;
|
||||
|
||||
@implementation UIView (ComponentViewProtocol)
|
||||
|
||||
- (void)mountChildComponentView:(UIView<RCTComponentViewProtocol> *)childComponentView
|
||||
|
@ -25,31 +27,40 @@
|
|||
[childComponentView removeFromSuperview];
|
||||
}
|
||||
|
||||
- (void)updateProps:(facebook::react::SharedProps)props
|
||||
oldProps:(facebook::react::SharedProps)oldProps
|
||||
- (void)updateProps:(SharedProps)props
|
||||
oldProps:(SharedProps)oldProps
|
||||
{
|
||||
// Default implementation does nothing.
|
||||
}
|
||||
|
||||
- (void)updateEventEmitter:(facebook::react::SharedEventEmitter)eventEmitter
|
||||
- (void)updateEventEmitter:(SharedEventEmitter)eventEmitter
|
||||
{
|
||||
// Default implementation does nothing.
|
||||
}
|
||||
|
||||
- (void)updateLocalData:(facebook::react::SharedLocalData)localData
|
||||
oldLocalData:(facebook::react::SharedLocalData)oldLocalData
|
||||
- (void)updateLocalData:(SharedLocalData)localData
|
||||
oldLocalData:(SharedLocalData)oldLocalData
|
||||
{
|
||||
// Default implementation does nothing.
|
||||
}
|
||||
|
||||
- (void)updateLayoutMetrics:(facebook::react::LayoutMetrics)layoutMetrics
|
||||
oldLayoutMetrics:(facebook::react::LayoutMetrics)oldLayoutMetrics
|
||||
- (void)updateLayoutMetrics:(LayoutMetrics)layoutMetrics
|
||||
oldLayoutMetrics:(LayoutMetrics)oldLayoutMetrics
|
||||
{
|
||||
if (layoutMetrics.frame != oldLayoutMetrics.frame) {
|
||||
self.frame = RCTCGRectFromRect(layoutMetrics.frame);
|
||||
}
|
||||
|
||||
// TODO: Apply another layout metrics here.
|
||||
if (layoutMetrics.layoutDirection != oldLayoutMetrics.layoutDirection) {
|
||||
self.semanticContentAttribute =
|
||||
layoutMetrics.layoutDirection == LayoutDirection::RightToLeft ?
|
||||
UISemanticContentAttributeForceRightToLeft :
|
||||
UISemanticContentAttributeForceLeftToRight;
|
||||
}
|
||||
|
||||
if (layoutMetrics.displayType != oldLayoutMetrics.displayType) {
|
||||
self.hidden = layoutMetrics.displayType == DisplayType::None;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)prepareForRecycle
|
||||
|
|
|
@ -26,18 +26,18 @@ namespace react {
|
|||
|
||||
Sealable::Sealable(): sealed_(false) {}
|
||||
|
||||
Sealable::Sealable(const Sealable& other): sealed_(false) {};
|
||||
Sealable::Sealable(const Sealable &other): sealed_(false) {};
|
||||
|
||||
Sealable::Sealable(Sealable&& other) noexcept: sealed_(false) {};
|
||||
Sealable::Sealable(Sealable &&other) noexcept: sealed_(false) {};
|
||||
|
||||
Sealable::~Sealable() noexcept {};
|
||||
|
||||
Sealable& Sealable::operator= (const Sealable& other) {
|
||||
Sealable &Sealable::operator=(const Sealable &other) {
|
||||
ensureUnsealed();
|
||||
return *this;
|
||||
}
|
||||
|
||||
Sealable& Sealable::operator= (Sealable&& other) noexcept {
|
||||
Sealable &Sealable::operator=(Sealable &&other) noexcept {
|
||||
ensureUnsealed();
|
||||
return *this;
|
||||
};
|
||||
|
|
|
@ -43,11 +43,11 @@ namespace react {
|
|||
class Sealable {
|
||||
public:
|
||||
Sealable();
|
||||
Sealable(const Sealable& other);
|
||||
Sealable(Sealable&& other) noexcept;
|
||||
Sealable(const Sealable &other);
|
||||
Sealable(Sealable &&other) noexcept;
|
||||
~Sealable() noexcept;
|
||||
Sealable& operator=(const Sealable& other);
|
||||
Sealable& operator=(Sealable&& other) noexcept;
|
||||
Sealable &operator=(const Sealable &other);
|
||||
Sealable &operator=(Sealable &&other) noexcept;
|
||||
|
||||
/*
|
||||
* Seals the object. This operation is irreversible;
|
||||
|
|
Loading…
Reference in New Issue