Fabric: Proxying `LayoutConstraints::direction` down to RootNode's styles

Summary:
Trivial.
We have to proxy layout directions as well as min and max sizes to RootNode's Props to properly communicate the constrains to Yoga.

Reviewed By: sahrens

Differential Revision: D10387798

fbshipit-source-id: a02ec0a20b3ef28f6230738e5b3a4a2b0b8e0961
This commit is contained in:
Valentin Shergin 2018-10-15 23:23:35 -07:00 committed by Facebook Github Bot
parent d73254b441
commit f2da2d1963
3 changed files with 15 additions and 1 deletions

View File

@ -26,6 +26,9 @@ static YGStyle yogaStyleFromLayoutConstraints(
yogaStyle.maxDimensions[YGDimensionHeight] =
yogaStyleValueFromFloat(layoutConstraints.maximumSize.height);
yogaStyle.direction =
yogaDirectionFromLayoutDirection(layoutConstraints.layoutDirection);
return yogaStyle;
}

View File

@ -113,6 +113,17 @@ inline LayoutMetrics layoutMetricsFromYogaNode(YGNode &yogaNode) {
return layoutMetrics;
}
inline YGDirection yogaDirectionFromLayoutDirection(LayoutDirection direction) {
switch (direction) {
case LayoutDirection::Undefined:
return YGDirectionInherit;
case LayoutDirection::LeftToRight:
return YGDirectionLTR;
case LayoutDirection::RightToLeft:
return YGDirectionRTL;
}
}
inline void fromDynamic(const folly::dynamic &value, YGDirection &result) {
assert(value.isString());
auto stringValue = value.asString();

View File

@ -19,7 +19,7 @@ namespace react {
struct LayoutConstraints {
Size minimumSize{0, 0};
Size maximumSize{kFloatUndefined, kFloatUndefined};
LayoutDirection layoutDirection;
LayoutDirection layoutDirection{LayoutDirection::Undefined};
};
} // namespace react