From b988e1cb5886358db971a8ed8f5913cfbecc2ec1 Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Wed, 31 Jul 2024 23:49:48 -0700 Subject: [PATCH] Handle resetting boxShadow prop (#45829) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/45829 `ReadableArray` here should be nullable, according to https://reactnative.dev/docs/next/native-components-android#3-expose-view-property-setters-using-reactprop-or-reactpropgroup-annotation Filter is doing this correctly already. That form will be used to reset state, back to no box shadows. Changelog: [Internal] Reviewed By: joevilches Differential Revision: D60465486 fbshipit-source-id: b8024ad02a0eabc0da8dfca141d51387983cc031 --- .../uimanager/BackgroundStyleApplicator.kt | 20 ++++++++++++------- .../react/views/image/ReactImageManager.kt | 2 +- .../ReactHorizontalScrollViewManager.java | 2 +- .../views/scroll/ReactScrollViewManager.java | 2 +- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt index 3d9cfc3d13b..dedbb48e211 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt @@ -131,16 +131,22 @@ public object BackgroundStyleApplicator { } @JvmStatic - public fun setBoxShadow(view: View, shadows: ReadableArray): Unit { + public fun setBoxShadow(view: View, shadows: ReadableArray?): Unit { if (Build.VERSION.SDK_INT < 31) { FLog.w("BackgroundStyleApplicator", "\"boxShadow\" requires Android 12 or later") - } else { - val shadowStyles = mutableListOf() - for (i in 0..() + for (i in 0.. } @ReactProp(name = ViewProps.BOX_SHADOW, customType = "BoxShadow") - public void setBoxShadow(ReactScrollView view, ReadableArray shadows) { + public void setBoxShadow(ReactScrollView view, @Nullable ReadableArray shadows) { if (ReactNativeFeatureFlags.enableBackgroundStyleApplicator()) { BackgroundStyleApplicator.setBoxShadow(view, shadows); }