From 542c7cc357b06f4cf2f0541216a3f26cf46babaf Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Thu, 4 Mar 2021 02:16:32 -0800 Subject: [PATCH] Pass layoutDirection to surface handler Summary: Changelog: [internal] During transition to SurfaceHandler, layoutDirection got lost. This diff adds it back. Reviewed By: JoshuaGross Differential Revision: D26775873 fbshipit-source-id: 9b638b4c2a41eb887312b968a2e113c5fcd7463d --- React/Fabric/Surface/RCTFabricSurface.mm | 2 ++ ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/React/Fabric/Surface/RCTFabricSurface.mm b/React/Fabric/Surface/RCTFabricSurface.mm index ba325ac55c..5c67facb19 100644 --- a/React/Fabric/Surface/RCTFabricSurface.mm +++ b/React/Fabric/Surface/RCTFabricSurface.mm @@ -168,6 +168,8 @@ using namespace facebook::react; - (void)_updateLayoutContext { auto layoutConstraints = _surfaceHandler->getLayoutConstraints(); + layoutConstraints.layoutDirection = RCTLayoutDirection([[RCTI18nUtil sharedInstance] isRTL]); + auto layoutContext = _surfaceHandler->getLayoutContext(); layoutContext.pointScaleFactor = RCTScreenScale(); diff --git a/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp b/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp index 0e01c6e8d4..acc6b36b19 100644 --- a/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +++ b/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp @@ -58,6 +58,9 @@ void SurfaceHandler::start() const noexcept { std::unique_lock lock(linkMutex_); react_native_assert( link_.status == Status::Registered && "Surface must be registered."); + react_native_assert( + getLayoutConstraints().layoutDirection != LayoutDirection::Undefined && + "layoutDirection must be set."); auto parameters = Parameters{}; {