-
Notifications
You must be signed in to change notification settings - Fork 24.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Linear gradient border styles with BackgroundStyleApplicator #46084
fix: Linear gradient border styles with BackgroundStyleApplicator #46084
Conversation
@@ -49,6 +50,13 @@ public object BackgroundStyleApplicator { | |||
ensureCSSBackground(view).color = color ?: Color.TRANSPARENT | |||
} | |||
|
|||
@JvmStatic | |||
public fun setBackgroundImage(view: View, gradients: Array<Gradient>?): Unit { | |||
if (!gradients.isNullOrEmpty()) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If input is null or empty we should clear any existing gradients
@@ -49,6 +50,13 @@ public object BackgroundStyleApplicator { | |||
ensureCSSBackground(view).color = color ?: Color.TRANSPARENT | |||
} | |||
|
|||
@JvmStatic |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- We might eventually support background images based on URI, in which case we’d need to change this public API. Can we design in a way that will be future proof to that? Like maybe having a type for background image layer, that can be gradient type now, and uri later?
- Can we accept by list instead of array for consistency?
@@ -107,9 +107,9 @@ public void setBackgroundImage(ReactViewGroup view, @Nullable ReadableArray back | |||
ReadableMap gradientMap = backgroundImage.getMap(i); | |||
gradients[i] = new Gradient(gradientMap); | |||
} | |||
view.setGradients(gradients); | |||
view.setBackgroundImage(gradients); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The greater context behind BackgroundStyleApplicator is that it works on any view (e.g. Text instead of just View). Once the flag has been enabled a bit longer, my plan has been to start moving all the setters to BaseViewMansger.
This is why the current view managers use BackgroundStyleApplicator directly when the gate is on, instead of calling through any specific underlying views.
@NickGerleman pushed all the mentioned changes. Thanks! |
@NickGerleman has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
@NickGerleman merged this pull request in 20e3f45. |
This pull request was successfully merged by @intergalacticspacehighway in 20e3f45 When will my fix make it into a release? | How to file a pick request? |
Summary:
Fix linear gradient borders with BackgroundStyleApplicator.
After fix
Changelog:
[ANDROID] [FIXED] - Linear gradient border styles
Test Plan:
Test border examples in LinearGradientExample.js