Skip to content
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: radialGradient r={0} #2271

Merged
merged 4 commits into from
May 15, 2024
Merged

fix: radialGradient r={0} #2271

merged 4 commits into from
May 15, 2024

Conversation

jakex7
Copy link
Member

@jakex7 jakex7 commented May 10, 2024

Summary

  • Fixed crash on Android when <RadialGradient r={0}>.
  • Fixed render issue on Android and iOS when radius is zero. According to MDN Docs

A value of lower or equal to zero will cause the area to be painted as a single color using the color and opacity of the last gradient <stop>.

Test Plan

Test is available in TestsExample as Test2170

Compatibility

OS Implemented
iOS
Android

Fixes #2170

@jakex7 jakex7 requested a review from WoLewicki May 10, 2024 11:52
rx = width;
ry = height;
CGGradientRelease(gradient);
NSArray<NSNumber *> *gradientArray = @[_colors.firstObject, _colors.lastObject, _colors[_colors.count-2], _colors.lastObject];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you quickly explain what each element of this array corresponds to? And since we have _colors.count-2, is there a case there aren't 3 items in the _colors array?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure! When radialGradient's r=0 it should be painted as a single color using the color of the last stop.

The _colors array corresponds to the Stop elements inside RadialGradient. It consists of offset and stopColor respectively so the gradientArray should look like this

[offset from first, color from last, offset from last, color from last]

In addition, above is a check that _colors.count is not 0 and given that it should always consists of an even number of elements (offset, color), even for stop with no props the default values should be passed.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perfect, thanks for the explanation!

Copy link
Member

@WoLewicki WoLewicki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@jakex7 jakex7 merged commit 38a8dbc into main May 15, 2024
5 of 6 checks passed
@jakex7 jakex7 deleted the @jakex7/fix-radialGradient-r-zero branch May 15, 2024 10:00
github-merge-queue bot pushed a commit to valora-inc/wallet that referenced this pull request May 25, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[react-native-svg](https://togithub.com/react-native-community/react-native-svg)
| [`^15.2.0` ->
`^15.3.0`](https://renovatebot.com/diffs/npm/react-native-svg/15.2.0/15.3.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-native-svg/15.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-native-svg/15.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-native-svg/15.2.0/15.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-native-svg/15.2.0/15.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>react-native-community/react-native-svg
(react-native-svg)</summary>

###
[`v15.3.0`](https://togithub.com/software-mansion/react-native-svg/releases/tag/v15.3.0)

[Compare
Source](https://togithub.com/react-native-community/react-native-svg/compare/v15.2.0...v15.3.0)

Minor release fixing some long-standing bugs. Thank you for your
contributions! 🎉

#### What's Changed

- Add dxguid.lib to release action by
[@&#8203;Arthurmtro](https://togithub.com/Arthurmtro) in
[software-mansion/react-native-svg#2243
- fix: set default strokeWidth to 1 on android by
[@&#8203;jakex7](https://togithub.com/jakex7) in
[software-mansion/react-native-svg#2269
- fix: remove `err` export by
[@&#8203;jakex7](https://togithub.com/jakex7) in
[software-mansion/react-native-svg#2270
- fix: Fix pod install not working with lower version of Cocoapods due
to visionOS by [@&#8203;jihoon416](https://togithub.com/jihoon416) in
[software-mansion/react-native-svg#2240
- fix: Fix static view config validation for RNSVGSvgViewAndroid by
[@&#8203;fabriziocucci](https://togithub.com/fabriziocucci) in
[software-mansion/react-native-svg#2274
- fix: radialGradient `r={0}` by
[@&#8203;jakex7](https://togithub.com/jakex7) in
[software-mansion/react-native-svg#2271
- fix: toDataUrl line breaks by
[@&#8203;jakex7](https://togithub.com/jakex7) in
[software-mansion/react-native-svg#2272
- fix: change android package name by
[@&#8203;jakex7](https://togithub.com/jakex7) in
[software-mansion/react-native-svg#2275
- fix: parsing `<` inside comments by
[@&#8203;jakex7](https://togithub.com/jakex7) in
[software-mansion/react-native-svg#2277

#### New Contributors

- [@&#8203;Arthurmtro](https://togithub.com/Arthurmtro) made their first
contribution in
[software-mansion/react-native-svg#2243
- [@&#8203;jakex7](https://togithub.com/jakex7) made their first
contribution in
[software-mansion/react-native-svg#2269
- [@&#8203;jihoon416](https://togithub.com/jihoon416) made their first
contribution in
[software-mansion/react-native-svg#2240
- [@&#8203;fabriziocucci](https://togithub.com/fabriziocucci) made their
first contribution in
[software-mansion/react-native-svg#2274

**Full Changelog**:
software-mansion/react-native-svg@v15.2.0...v15.3.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 5pm,every weekend" in timezone
America/Los_Angeles, Automerge - "after 5pm,every weekend" in timezone
America/Los_Angeles.

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/valora-inc/wallet).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbIm5wbSIsInJlbm92YXRlIl19-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: valora-bot <valorabot@valoraapp.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Android crashes if r="0" for radialGradient
2 participants