mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
remove gating for rtl swapping fix + clean Paragraph Yoga node (#42297)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/42297 changelog: [internal] Reviewed By: fkgozali Differential Revision: D52728092 fbshipit-source-id: 6d05e5b72a350847030e0655aa914b64a4681752
This commit is contained in:
committed by
Facebook GitHub Bot
parent
1d89fad824
commit
565dec4d20
@@ -1890,12 +1890,10 @@ public class com/facebook/react/common/network/OkHttpCallUtil {
|
||||
public class com/facebook/react/config/ReactFeatureFlags {
|
||||
public static field calculateTransformedFramesEnabled Z
|
||||
public static field dispatchPointerEvents Z
|
||||
public static field doNotSwapLeftAndRightOnAndroidInLTR Z
|
||||
public static field enableBackgroundExecutor Z
|
||||
public static field enableBridgelessArchitecture Z
|
||||
public static field enableBridgelessArchitectureNewCreateReloadDestroy Z
|
||||
public static field enableBridgelessArchitectureSoftExceptions Z
|
||||
public static field enableCleanParagraphYogaNode Z
|
||||
public static field enableClonelessStateProgression Z
|
||||
public static field enableCppPropsIteratorSetter Z
|
||||
public static field enableDefaultAsyncBatchedPriority Z
|
||||
|
||||
-6
@@ -130,12 +130,6 @@ public class ReactFeatureFlags {
|
||||
/** Use native view configs in bridgeless mode. */
|
||||
public static boolean useNativeViewConfigsInBridgelessMode = false;
|
||||
|
||||
/** Only swap left and right on Android in RTL scripts. */
|
||||
public static boolean doNotSwapLeftAndRightOnAndroidInLTR = false;
|
||||
|
||||
/** Clean yoga node when <Text /> does not change. */
|
||||
public static boolean enableCleanParagraphYogaNode = false;
|
||||
|
||||
/** Default state updates and events to async batched priority. */
|
||||
public static boolean enableDefaultAsyncBatchedPriority = false;
|
||||
|
||||
|
||||
@@ -414,10 +414,6 @@ void Binding::installFabricUIManager(
|
||||
|
||||
CoreFeatures::enablePropIteratorSetter =
|
||||
getFeatureFlagValue("enableCppPropsIteratorSetter");
|
||||
CoreFeatures::doNotSwapLeftAndRightOnAndroidInLTR =
|
||||
getFeatureFlagValue("doNotSwapLeftAndRightOnAndroidInLTR");
|
||||
CoreFeatures::enableCleanParagraphYogaNode =
|
||||
getFeatureFlagValue("enableCleanParagraphYogaNode");
|
||||
CoreFeatures::enableDefaultAsyncBatchedPriority =
|
||||
getFeatureFlagValue("enableDefaultAsyncBatchedPriority");
|
||||
CoreFeatures::enableClonelessStateProgression =
|
||||
|
||||
+5
-8
@@ -17,7 +17,6 @@
|
||||
#include <react/renderer/graphics/rounding.h>
|
||||
#include <react/renderer/telemetry/TransactionTelemetry.h>
|
||||
#include <react/renderer/textlayoutmanager/TextLayoutContext.h>
|
||||
#include <react/utils/CoreFeatures.h>
|
||||
|
||||
#include "ParagraphState.h"
|
||||
|
||||
@@ -31,13 +30,11 @@ ParagraphShadowNode::ParagraphShadowNode(
|
||||
const ShadowNode& sourceShadowNode,
|
||||
const ShadowNodeFragment& fragment)
|
||||
: ConcreteViewShadowNode(sourceShadowNode, fragment) {
|
||||
if (CoreFeatures::enableCleanParagraphYogaNode) {
|
||||
if (!fragment.children && !fragment.props) {
|
||||
// This ParagraphShadowNode was cloned but did not change
|
||||
// in a way that affects its layout. Let's mark it clean
|
||||
// to stop Yoga from traversing it.
|
||||
cleanLayout();
|
||||
}
|
||||
if (!fragment.children && !fragment.props) {
|
||||
// This ParagraphShadowNode was cloned but did not change
|
||||
// in a way that affects its layout. Let's mark it clean
|
||||
// to stop Yoga from traversing it.
|
||||
cleanLayout();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-4
@@ -580,8 +580,7 @@ void YogaLayoutableShadowNode::layoutTree(
|
||||
SystraceSection s1("YogaLayoutableShadowNode::layoutTree");
|
||||
|
||||
bool swapLeftAndRight = layoutContext.swapLeftAndRightInRTL &&
|
||||
(layoutConstraints.layoutDirection == LayoutDirection::RightToLeft ||
|
||||
!CoreFeatures::doNotSwapLeftAndRightOnAndroidInLTR);
|
||||
layoutConstraints.layoutDirection == LayoutDirection::RightToLeft;
|
||||
|
||||
{
|
||||
SystraceSection s2("YogaLayoutableShadowNode::configureYogaTree");
|
||||
@@ -699,8 +698,7 @@ void YogaLayoutableShadowNode::layout(LayoutContext layoutContext) {
|
||||
newLayoutMetrics.pointScaleFactor = layoutContext.pointScaleFactor;
|
||||
newLayoutMetrics.wasLeftAndRightSwapped =
|
||||
layoutContext.swapLeftAndRightInRTL &&
|
||||
(newLayoutMetrics.layoutDirection == LayoutDirection::RightToLeft ||
|
||||
!CoreFeatures::doNotSwapLeftAndRightOnAndroidInLTR);
|
||||
newLayoutMetrics.layoutDirection == LayoutDirection::RightToLeft;
|
||||
|
||||
// Child node's layout has changed. When a node is added to
|
||||
// `affectedNodes`, onLayout event is called on the component. Comparing
|
||||
|
||||
@@ -15,8 +15,6 @@ bool CoreFeatures::cacheLastTextMeasurement = false;
|
||||
bool CoreFeatures::cancelImageDownloadsOnRecycle = false;
|
||||
bool CoreFeatures::enableGranularScrollViewStateUpdatesIOS = false;
|
||||
bool CoreFeatures::enableMountHooks = false;
|
||||
bool CoreFeatures::doNotSwapLeftAndRightOnAndroidInLTR = false;
|
||||
bool CoreFeatures::enableCleanParagraphYogaNode = false;
|
||||
bool CoreFeatures::enableGranularShadowTreeStateReconciliation = false;
|
||||
bool CoreFeatures::enableDefaultAsyncBatchedPriority = false;
|
||||
bool CoreFeatures::enableClonelessStateProgression = false;
|
||||
|
||||
@@ -41,12 +41,6 @@ class CoreFeatures {
|
||||
// Report mount operations from the host platform to notify mount hooks.
|
||||
static bool enableMountHooks;
|
||||
|
||||
// Only swap left and right on Android in RTL scripts.
|
||||
static bool doNotSwapLeftAndRightOnAndroidInLTR;
|
||||
|
||||
// Clean yoga node when <Text /> does not change.
|
||||
static bool enableCleanParagraphYogaNode;
|
||||
|
||||
// When enabled, the renderer would only fail commits when they propagate
|
||||
// state and the last commit that updated state changed before committing.
|
||||
static bool enableGranularShadowTreeStateReconciliation;
|
||||
|
||||
Reference in New Issue
Block a user