Skip to content

Commit b69a92e

Browse files
NickGerlemanfacebook-github-bot
authored andcommitted
Add boxShadow support to BaseViewManager (facebook#46936)
Summary: Pull Request resolved: facebook#46936 Let's enable box-shadow everywhere! This should be safe, now that we assume any background mutating methods in BaseViewManager go through BackgroundStyleApplicator. `boxShadow` is also already in `BaseViewConfig` instead of configs for each native component (bc we were already planning to make this change). Changelog: [Android][Added] - Add boxShadow support to BaseViewManager Reviewed By: mdvacca Differential Revision: D64140841 fbshipit-source-id: e937a4bcaa4506fd25d0916633313083c7e49333
1 parent 6741fd9 commit b69a92e

File tree

9 files changed

+8
-37
lines changed

9 files changed

+8
-37
lines changed

packages/react-native/ReactAndroid/api/ReactAndroid.api

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4154,6 +4154,7 @@ public abstract class com/facebook/react/uimanager/BaseViewManager : com/faceboo
41544154
public fun setBorderRadius (Landroid/view/View;F)V
41554155
public fun setBorderTopLeftRadius (Landroid/view/View;F)V
41564156
public fun setBorderTopRightRadius (Landroid/view/View;F)V
4157+
public fun setBoxShadow (Landroid/view/View;Lcom/facebook/react/bridge/ReadableArray;)V
41574158
public fun setClick (Landroid/view/View;Z)V
41584159
public fun setClickCapture (Landroid/view/View;Z)V
41594160
public fun setElevation (Landroid/view/View;F)V
@@ -6666,7 +6667,6 @@ public final class com/facebook/react/views/image/ReactImageManager : com/facebo
66666667
public final fun setBorderColor (Lcom/facebook/react/views/image/ReactImageView;Ljava/lang/Integer;)V
66676668
public final fun setBorderRadius (Lcom/facebook/react/views/image/ReactImageView;IF)V
66686669
public final fun setBorderWidth (Lcom/facebook/react/views/image/ReactImageView;F)V
6669-
public final fun setBoxShadow (Lcom/facebook/react/views/image/ReactImageView;Lcom/facebook/react/bridge/ReadableArray;)V
66706670
public final fun setDefaultSource (Lcom/facebook/react/views/image/ReactImageView;Ljava/lang/String;)V
66716671
public final fun setFadeDuration (Lcom/facebook/react/views/image/ReactImageView;I)V
66726672
public final fun setHeaders (Lcom/facebook/react/views/image/ReactImageView;Lcom/facebook/react/bridge/ReadableMap;)V
@@ -7092,7 +7092,6 @@ public class com/facebook/react/views/scroll/ReactHorizontalScrollViewManager :
70927092
public fun setBorderStyle (Lcom/facebook/react/views/scroll/ReactHorizontalScrollView;Ljava/lang/String;)V
70937093
public fun setBorderWidth (Lcom/facebook/react/views/scroll/ReactHorizontalScrollView;IF)V
70947094
public fun setBottomFillColor (Lcom/facebook/react/views/scroll/ReactHorizontalScrollView;I)V
7095-
public fun setBoxShadow (Lcom/facebook/react/views/scroll/ReactHorizontalScrollView;Lcom/facebook/react/bridge/ReadableArray;)V
70967095
public fun setContentOffset (Lcom/facebook/react/views/scroll/ReactHorizontalScrollView;Lcom/facebook/react/bridge/ReadableMap;)V
70977096
public fun setDecelerationRate (Lcom/facebook/react/views/scroll/ReactHorizontalScrollView;F)V
70987097
public fun setDisableIntervalMomentum (Lcom/facebook/react/views/scroll/ReactHorizontalScrollView;Z)V
@@ -7333,7 +7332,6 @@ public class com/facebook/react/views/scroll/ReactScrollViewManager : com/facebo
73337332
public fun setBorderStyle (Lcom/facebook/react/views/scroll/ReactScrollView;Ljava/lang/String;)V
73347333
public fun setBorderWidth (Lcom/facebook/react/views/scroll/ReactScrollView;IF)V
73357334
public fun setBottomFillColor (Lcom/facebook/react/views/scroll/ReactScrollView;I)V
7336-
public fun setBoxShadow (Lcom/facebook/react/views/scroll/ReactScrollView;Lcom/facebook/react/bridge/ReadableArray;)V
73377335
public fun setContentOffset (Lcom/facebook/react/views/scroll/ReactScrollView;Lcom/facebook/react/bridge/ReadableMap;)V
73387336
public fun setDecelerationRate (Lcom/facebook/react/views/scroll/ReactScrollView;F)V
73397337
public fun setDisableIntervalMomentum (Lcom/facebook/react/views/scroll/ReactScrollView;Z)V
@@ -7633,7 +7631,6 @@ public abstract class com/facebook/react/views/text/ReactTextAnchorViewManager :
76337631
public fun setBorderRadius (Lcom/facebook/react/views/text/ReactTextView;IF)V
76347632
public fun setBorderStyle (Lcom/facebook/react/views/text/ReactTextView;Ljava/lang/String;)V
76357633
public fun setBorderWidth (Lcom/facebook/react/views/text/ReactTextView;IF)V
7636-
public fun setBoxShadow (Lcom/facebook/react/views/text/ReactTextView;Lcom/facebook/react/bridge/ReadableArray;)V
76377634
public fun setDataDetectorType (Lcom/facebook/react/views/text/ReactTextView;Ljava/lang/String;)V
76387635
public fun setDisabled (Lcom/facebook/react/views/text/ReactTextView;Z)V
76397636
public fun setEllipsizeMode (Lcom/facebook/react/views/text/ReactTextView;Ljava/lang/String;)V
@@ -8116,7 +8113,6 @@ public class com/facebook/react/views/textinput/ReactTextInputManager : com/face
81168113
public fun setBorderRadius (Lcom/facebook/react/views/textinput/ReactEditText;IF)V
81178114
public fun setBorderStyle (Lcom/facebook/react/views/textinput/ReactEditText;Ljava/lang/String;)V
81188115
public fun setBorderWidth (Lcom/facebook/react/views/textinput/ReactEditText;IF)V
8119-
public fun setBoxShadow (Lcom/facebook/react/views/textinput/ReactEditText;Lcom/facebook/react/bridge/ReadableArray;)V
81208116
public fun setCaretHidden (Lcom/facebook/react/views/textinput/ReactEditText;Z)V
81218117
public fun setColor (Lcom/facebook/react/views/textinput/ReactEditText;Ljava/lang/Integer;)V
81228118
public fun setContextMenuHidden (Lcom/facebook/react/views/textinput/ReactEditText;Z)V
@@ -8323,7 +8319,6 @@ public class com/facebook/react/views/view/ReactViewManager : com/facebook/react
83238319
public fun setBorderRadius (Lcom/facebook/react/views/view/ReactViewGroup;ILcom/facebook/react/bridge/Dynamic;)V
83248320
public fun setBorderStyle (Lcom/facebook/react/views/view/ReactViewGroup;Ljava/lang/String;)V
83258321
public fun setBorderWidth (Lcom/facebook/react/views/view/ReactViewGroup;IF)V
8326-
public fun setBoxShadow (Lcom/facebook/react/views/view/ReactViewGroup;Lcom/facebook/react/bridge/ReadableArray;)V
83278322
public fun setCollapsable (Lcom/facebook/react/views/view/ReactViewGroup;Z)V
83288323
public fun setCollapsableChildren (Lcom/facebook/react/views/view/ReactViewGroup;Z)V
83298324
public fun setFocusable (Lcom/facebook/react/views/view/ReactViewGroup;Z)V

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -779,6 +779,11 @@ public void setOutlineWidth(T view, float width) {
779779
BackgroundStyleApplicator.setOutlineWidth(view, width);
780780
}
781781

782+
@ReactProp(name = ViewProps.BOX_SHADOW, customType = "BoxShadow")
783+
public void setBoxShadow(T view, @Nullable ReadableArray shadows) {
784+
BackgroundStyleApplicator.setBoxShadow(view, shadows);
785+
}
786+
782787
private void logUnsupportedPropertyWarning(String propName) {
783788
FLog.w(ReactConstants.TAG, "%s doesn't support property '%s'", getName(), propName);
784789
}

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerDelegate.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ public abstract class BaseViewManagerDelegate<
6969
mViewManager.setBorderTopRightRadius(
7070
view, (value as Double?)?.toFloat() ?: YogaConstants.UNDEFINED)
7171

72+
ViewProps.BOX_SHADOW -> mViewManager.setBoxShadow(view, value as ReadableArray?)
73+
7274
ViewProps.ELEVATION -> mViewManager.setElevation(view, (value as Double?)?.toFloat() ?: 0.0f)
7375

7476
ViewProps.FILTER -> mViewManager.setFilter(view, value as ReadableArray?)

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -231,11 +231,6 @@ public constructor(
231231
}
232232
}
233233

234-
@ReactProp(name = ViewProps.BOX_SHADOW, customType = "BoxShadow")
235-
public fun setBoxShadow(view: ReactImageView, shadows: ReadableArray?): Unit {
236-
BackgroundStyleApplicator.setBoxShadow(view, shadows)
237-
}
238-
239234
public override fun getExportedCustomDirectEventTypeConstants(): MutableMap<String, Any> =
240235
(super.getExportedCustomDirectEventTypeConstants() ?: mutableMapOf<String, Any>()).apply {
241236
put(

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -360,9 +360,4 @@ public void setScrollEventThrottle(ReactHorizontalScrollView view, int scrollEve
360360
public void setHorizontal(ReactHorizontalScrollView view, boolean horizontal) {
361361
// Do Nothing: Align with static ViewConfigs
362362
}
363-
364-
@ReactProp(name = ViewProps.BOX_SHADOW, customType = "BoxShadow")
365-
public void setBoxShadow(ReactHorizontalScrollView view, @Nullable ReadableArray shadows) {
366-
BackgroundStyleApplicator.setBoxShadow(view, shadows);
367-
}
368363
}

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -342,11 +342,6 @@ public void setMaintainVisibleContentPosition(ReactScrollView view, ReadableMap
342342
}
343343
}
344344

345-
@ReactProp(name = ViewProps.BOX_SHADOW, customType = "BoxShadow")
346-
public void setBoxShadow(ReactScrollView view, @Nullable ReadableArray shadows) {
347-
BackgroundStyleApplicator.setBoxShadow(view, shadows);
348-
}
349-
350345
@Override
351346
public @Nullable Object updateState(
352347
ReactScrollView view, ReactStylesDiffMap props, StateWrapper stateWrapper) {

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import android.view.View;
1616
import androidx.annotation.Nullable;
1717
import com.facebook.common.logging.FLog;
18-
import com.facebook.react.bridge.ReadableArray;
1918
import com.facebook.react.common.ReactConstants;
2019
import com.facebook.react.uimanager.BackgroundStyleApplicator;
2120
import com.facebook.react.uimanager.BaseViewManager;
@@ -231,9 +230,4 @@ public void setDataDetectorType(ReactTextView view, @Nullable String type) {
231230
public void setNotifyOnInlineViewLayout(ReactTextView view, boolean notifyOnInlineViewLayout) {
232231
view.setNotifyOnInlineViewLayout(notifyOnInlineViewLayout);
233232
}
234-
235-
@ReactProp(name = ViewProps.BOX_SHADOW, customType = "BoxShadow")
236-
public void setBoxShadow(ReactTextView view, @Nullable ReadableArray shadows) {
237-
BackgroundStyleApplicator.setBoxShadow(view, shadows);
238-
}
239233
}

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1029,11 +1029,6 @@ public void setOverflow(ReactEditText view, @Nullable String overflow) {
10291029
view.setOverflow(overflow);
10301030
}
10311031

1032-
@ReactProp(name = ViewProps.BOX_SHADOW, customType = "BoxShadow")
1033-
public void setBoxShadow(ReactEditText view, @Nullable ReadableArray shadows) {
1034-
BackgroundStyleApplicator.setBoxShadow(view, shadows);
1035-
}
1036-
10371032
@Override
10381033
protected void onAfterUpdateTransaction(ReactEditText view) {
10391034
super.onAfterUpdateTransaction(view);

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -350,11 +350,6 @@ protected void setTransformProperty(
350350
view.setBackfaceVisibilityDependantOpacity();
351351
}
352352

353-
@ReactProp(name = ViewProps.BOX_SHADOW, customType = "BoxShadow")
354-
public void setBoxShadow(ReactViewGroup view, @Nullable ReadableArray shadows) {
355-
BackgroundStyleApplicator.setBoxShadow(view, shadows);
356-
}
357-
358353
@Override
359354
public String getName() {
360355
return REACT_CLASS;

0 commit comments

Comments
 (0)