From 396abd4dac21b3429b826a6171d53646b3cbe23a Mon Sep 17 00:00:00 2001 From: Dawid Date: Thu, 28 Nov 2024 11:42:01 +0100 Subject: [PATCH] caching header config size, iOS --- ios/RNSScreenStackHeaderConfig.mm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ios/RNSScreenStackHeaderConfig.mm b/ios/RNSScreenStackHeaderConfig.mm index e759a4591..e652ae221 100644 --- a/ios/RNSScreenStackHeaderConfig.mm +++ b/ios/RNSScreenStackHeaderConfig.mm @@ -63,6 +63,7 @@ @implementation RNSScreenStackHeaderConfig { NSDirectionalEdgeInsets _lastHeaderInsets; #ifdef RCT_NEW_ARCH_ENABLED BOOL _initialPropsSet; + CGSize _lastSize; react::RNSScreenStackHeaderConfigShadowNode::ConcreteState::Shared _state; #ifndef NDEBUG RCTImageLoader *imageLoader; @@ -204,8 +205,11 @@ - (void)layoutNavigationControllerView #ifdef RCT_NEW_ARCH_ENABLED - (void)updateHeaderConfigState:(CGSize)size { - auto newState = react::RNSScreenStackHeaderConfigState(RCTSizeFromCGSize(size)); - _state->updateState(std::move(newState)); + if (_lastSize.width != size.width || _lastSize.height != size.height) { + auto newState = react::RNSScreenStackHeaderConfigState(RCTSizeFromCGSize(size)); + _state->updateState(std::move(newState)); + _lastSize = size; + } } #else - (void)updateHeaderConfigState:(NSDirectionalEdgeInsets)insets