@@ -671,11 +671,16 @@ - (RCTCornerRadii)cornerRadii
671671 CGFloat bottomLeftRadius;
672672 CGFloat bottomRightRadius;
673673
674+ const CGFloat logicalTopStartRadius = RCTDefaultIfNegativeTo (_borderStartStartRadius, _borderTopStartRadius);
675+ const CGFloat logicalTopEndRadius = RCTDefaultIfNegativeTo (_borderStartEndRadius, _borderTopEndRadius);
676+ const CGFloat logicalBottomStartRadius = RCTDefaultIfNegativeTo (_borderEndStartRadius, _borderBottomStartRadius);
677+ const CGFloat logicalBottomEndRadius = RCTDefaultIfNegativeTo (_borderEndEndRadius, _borderBottomEndRadius);
678+
674679 if ([[RCTI18nUtil sharedInstance ] doLeftAndRightSwapInRTL ]) {
675- const CGFloat topStartRadius = RCTDefaultIfNegativeTo (_borderTopLeftRadius, _borderStartStartRadius > 0 ? _borderStartStartRadius: _borderTopStartRadius );
676- const CGFloat topEndRadius = RCTDefaultIfNegativeTo (_borderTopRightRadius, _borderStartEndRadius > 0 ? _borderStartEndRadius: _borderTopEndRadius );
677- const CGFloat bottomStartRadius = RCTDefaultIfNegativeTo (_borderBottomLeftRadius, _borderEndStartRadius > 0 ? _borderEndStartRadius: _borderBottomStartRadius );
678- const CGFloat bottomEndRadius = RCTDefaultIfNegativeTo (_borderBottomRightRadius, _borderEndEndRadius > 0 ? _borderEndEndRadius: _borderBottomEndRadius );
680+ const CGFloat topStartRadius = RCTDefaultIfNegativeTo (_borderTopLeftRadius, logicalTopStartRadius );
681+ const CGFloat topEndRadius = RCTDefaultIfNegativeTo (_borderTopRightRadius, logicalTopEndRadius );
682+ const CGFloat bottomStartRadius = RCTDefaultIfNegativeTo (_borderBottomLeftRadius, logicalBottomStartRadius );
683+ const CGFloat bottomEndRadius = RCTDefaultIfNegativeTo (_borderBottomRightRadius, logicalBottomEndRadius );
679684
680685 const CGFloat directionAwareTopLeftRadius = isRTL ? topEndRadius : topStartRadius;
681686 const CGFloat directionAwareTopRightRadius = isRTL ? topStartRadius : topEndRadius;
@@ -687,10 +692,10 @@ - (RCTCornerRadii)cornerRadii
687692 bottomLeftRadius = RCTDefaultIfNegativeTo (radius, directionAwareBottomLeftRadius);
688693 bottomRightRadius = RCTDefaultIfNegativeTo (radius, directionAwareBottomRightRadius);
689694 } else {
690- const CGFloat directionAwareTopLeftRadius = isRTL ? _borderStartEndRadius > 0 ? _borderStartEndRadius: _borderTopEndRadius : _borderStartStartRadius > 0 ? _borderStartStartRadius: _borderTopStartRadius ;
691- const CGFloat directionAwareTopRightRadius = isRTL ? _borderStartStartRadius > 0 ? _borderStartStartRadius: _borderTopStartRadius : _borderStartEndRadius > 0 ? _borderStartEndRadius: _borderTopEndRadius ;
692- const CGFloat directionAwareBottomLeftRadius = isRTL ? _borderEndEndRadius > 0 ? _borderEndEndRadius: _borderBottomEndRadius : _borderEndStartRadius > 0 ? _borderEndStartRadius: _borderBottomStartRadius ;
693- const CGFloat directionAwareBottomRightRadius = isRTL ? _borderEndStartRadius > 0 ? _borderEndStartRadius: _borderBottomStartRadius : _borderEndEndRadius > 0 ? _borderEndEndRadius: _borderBottomEndRadius ;
695+ const CGFloat directionAwareTopLeftRadius = isRTL ? logicalTopEndRadius : logicalTopStartRadius ;
696+ const CGFloat directionAwareTopRightRadius = isRTL ? logicalTopStartRadius : logicalTopEndRadius ;
697+ const CGFloat directionAwareBottomLeftRadius = isRTL ? logicalBottomEndRadius : logicalBottomStartRadius ;
698+ const CGFloat directionAwareBottomRightRadius = isRTL ? logicalBottomStartRadius : logicalBottomEndRadius ;
694699
695700 topLeftRadius =
696701 RCTDefaultIfNegativeTo (radius, RCTDefaultIfNegativeTo (_borderTopLeftRadius, directionAwareTopLeftRadius));
0 commit comments