diff --git a/packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm b/packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm index 95f38d95fac..97b47aa8600 100644 --- a/packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +++ b/packages/react-native/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm @@ -189,10 +189,11 @@ RCTSendScrollEventForNativeAnimations_DEPRECATED(UIScrollView *scrollView, NSInt UIEdgeInsets newEdgeInsets = _scrollView.contentInset; CGFloat inset = MAX(scrollViewLowerY - keyboardEndFrame.origin.y, 0); + const auto &props = static_cast(*_props); if (isInverted) { - newEdgeInsets.top = MAX(inset, _scrollView.contentInset.top); + newEdgeInsets.top = MAX(inset, props.contentInset.top); } else { - newEdgeInsets.bottom = MAX(inset, _scrollView.contentInset.bottom); + newEdgeInsets.bottom = MAX(inset, props.contentInset.bottom); } CGPoint newContentOffset = _scrollView.contentOffset; @@ -210,12 +211,6 @@ RCTSendScrollEventForNativeAnimations_DEPRECATED(UIScrollView *scrollView, NSInt contentDiff = keyboardEndFrame.origin.y - keyboardBeginFrame.origin.y; } } else { - CGRect viewIntersection = CGRectIntersection(self.firstResponderFocus, keyboardEndFrame); - - if (CGRectIsNull(viewIntersection)) { - return; - } - // Inner text field focused CGFloat focusEnd = CGRectGetMaxY(self.firstResponderFocus); if (focusEnd > keyboardEndFrame.origin.y) { @@ -247,7 +242,7 @@ RCTSendScrollEventForNativeAnimations_DEPRECATED(UIScrollView *scrollView, NSInt animations:^{ self->_scrollView.contentInset = newEdgeInsets; self->_scrollView.verticalScrollIndicatorInsets = newEdgeInsets; - [self scrollToOffset:newContentOffset animated:NO]; + [self scrollTo:newContentOffset.x y:newContentOffset.y animated:NO]; } completion:nil]; }