From ee21b85dae8e8c63b8d451b76ce21ac47a9bd5c9 Mon Sep 17 00:00:00 2001 From: Joe Vilches Date: Fri, 9 Feb 2024 16:44:32 -0800 Subject: [PATCH] Support for (de)serializing node state (#42751) Summary: X-link: https://github.com/facebook/yoga/pull/1570 Pull Request resolved: https://github.com/facebook/react-native/pull/42751 tsia. Need node state Changelog: [Internal] Reviewed By: NickGerleman Differential Revision: D53206323 fbshipit-source-id: eb48c3873536eb52c8ffcce8005725da274e5373 --- packages/react-native/ReactCommon/yoga/yoga/YGNode.cpp | 4 ++++ packages/react-native/ReactCommon/yoga/yoga/YGNode.h | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/packages/react-native/ReactCommon/yoga/yoga/YGNode.cpp b/packages/react-native/ReactCommon/yoga/yoga/YGNode.cpp index d3265e0149ee22..57f0473b05e8d9 100644 --- a/packages/react-native/ReactCommon/yoga/yoga/YGNode.cpp +++ b/packages/react-native/ReactCommon/yoga/yoga/YGNode.cpp @@ -329,6 +329,10 @@ void YGNodeSetAlwaysFormsContainingBlock( resolveRef(node)->setAlwaysFormsContainingBlock(alwaysFormsContainingBlock); } +bool YGNodeGetAlwaysFormsContainingBlock(YGNodeConstRef node) { + return resolveRef(node)->alwaysFormsContainingBlock(); +} + // TODO: This leaks internal details to the public API. Remove after removing // ComponentKit usage of it. bool YGNodeCanUseCachedMeasurement( diff --git a/packages/react-native/ReactCommon/yoga/yoga/YGNode.h b/packages/react-native/ReactCommon/yoga/yoga/YGNode.h index e6f233acea5652..448000ebd714ab 100644 --- a/packages/react-native/ReactCommon/yoga/yoga/YGNode.h +++ b/packages/react-native/ReactCommon/yoga/yoga/YGNode.h @@ -273,6 +273,14 @@ YG_EXPORT void YGNodeSetAlwaysFormsContainingBlock( YGNodeRef node, bool alwaysFormsContainingBlock); +/** + * Whether the node will always form a containing block for any descendant. This + * can happen in situation where the client implements something like a + * transform that can affect containing blocks but is not handled by Yoga + * directly. + */ +YG_EXPORT bool YGNodeGetAlwaysFormsContainingBlock(YGNodeConstRef node); + /** * @deprecated */