-
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
Changes from 1 commit
6234525
a91a41a
b60e990
dcfd810
4bb262a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,6 +29,7 @@ import com.facebook.react.uimanager.style.BorderRadiusProp | |
import com.facebook.react.uimanager.style.BorderRadiusStyle | ||
import com.facebook.react.uimanager.style.BorderStyle | ||
import com.facebook.react.uimanager.style.BoxShadow | ||
import com.facebook.react.uimanager.style.Gradient | ||
import com.facebook.react.uimanager.style.LogicalEdge | ||
|
||
/** | ||
|
@@ -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 commentThe reason will be displayed to describe this comment to others. Learn more. If input is null or empty we should clear any existing gradients |
||
ensureCSSBackground(view).setBackgroundImage(gradients); | ||
} | ||
} | ||
|
||
@JvmStatic | ||
@ColorInt | ||
public fun getBackgroundColor(view: View): Int? = getCSSBackground(view)?.color | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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 commentThe 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. |
||
} else { | ||
view.setGradients(null); | ||
view.setBackgroundImage(null); | ||
} | ||
} | ||
} | ||
|
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.