diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt index c1d63abe3a7e..fb4ca1ad6ea4 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt @@ -7,6 +7,7 @@ package com.facebook.react.uimanager +import android.graphics.Color import android.view.View import com.facebook.react.bridge.ColorPropConverter import com.facebook.react.bridge.Dynamic @@ -89,7 +90,10 @@ public abstract class BaseViewManagerDelegate< ViewProps.MIX_BLEND_MODE -> mViewManager.setMixBlendMode(view, value as String?) ViewProps.SHADOW_COLOR -> - mViewManager.setShadowColor(view, ColorPropConverter.getColor(value, view.context, 0)) + mViewManager.setShadowColor( + view, + ColorPropConverter.getColor(value, view.context, Color.BLACK), + ) ViewProps.IMPORTANT_FOR_ACCESSIBILITY -> mViewManager.setImportantForAccessibility(view, value as String?) @@ -113,18 +117,12 @@ public abstract class BaseViewManagerDelegate< ) ViewProps.OUTLINE_OFFSET -> - mViewManager.setOutlineOffset( - view, - (value as Double?)?.toFloat() ?: YogaConstants.UNDEFINED, - ) + mViewManager.setOutlineOffset(view, (value as Double?)?.toFloat() ?: 0.0f) ViewProps.OUTLINE_STYLE -> mViewManager.setOutlineStyle(view, value as String?) ViewProps.OUTLINE_WIDTH -> - mViewManager.setOutlineWidth( - view, - (value as Double?)?.toFloat() ?: YogaConstants.UNDEFINED, - ) + mViewManager.setOutlineWidth(view, (value as Double?)?.toFloat() ?: 0.0f) ViewProps.RENDER_TO_HARDWARE_TEXTURE -> mViewManager.setRenderToHardwareTexture(view, value as Boolean? ?: false) diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/BaseViewManagerDelegateTest.java b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/BaseViewManagerDelegateTest.java index 13ad5c6a95c3..a3823d3fe2e0 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/BaseViewManagerDelegateTest.java +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/uimanager/BaseViewManagerDelegateTest.java @@ -10,6 +10,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; +import android.graphics.Color; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactTestHelper; import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags; @@ -60,4 +61,25 @@ public void setOutlineColorPreservesNull() { verify(viewManager).setOutlineColor(view, null); } + + @Test + public void setShadowColorResetsToBlack() { + delegate.setProperty(view, ViewProps.SHADOW_COLOR, null); + + verify(viewManager).setShadowColor(view, Color.BLACK); + } + + @Test + public void setOutlineOffsetResetsToZero() { + delegate.setProperty(view, ViewProps.OUTLINE_OFFSET, null); + + verify(viewManager).setOutlineOffset(view, 0f); + } + + @Test + public void setOutlineWidthResetsToZero() { + delegate.setProperty(view, ViewProps.OUTLINE_WIDTH, null); + + verify(viewManager).setOutlineWidth(view, 0f); + } }