MetaMask / MetaMask/metamask-mobile
[Rive][8.3.0] Verify Money next-best-action parallax (next_best_action_module_v1.riv)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 3k
- Forks
- 1.7k
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 669
Description
Part of #33825. Sentry: [METAMASK-MOBILE-5TM4](https://metamask.sentry.io/issues/METAMASK-MOBILE-5TM4).
## Context
New Rive surface added in 8.3.0 via #32892: a tilt-driven parallax on the Money onboarding card (`next_best_action_module_v1.riv`), continuously driven by device tilt (`useRiveNumber` updates every frame). This adds a new always-animating surface and a new mount/unmount point, increasing exposure to the worker-thread `doFrame` crash.
## What to check
- Artboards `Parallax Block 1` and `Parallax Block 2` exist and match `artboardName` usage.
- `onError` handler present, and the static-image fallback path works.
- Kill-switch flag `selectMoneyParallaxAnimationEnabledFlag` and reduce-motion guard behave correctly.
- Clean teardown when the card scrolls off-screen / unmounts while a frame is in flight (see #31076).
## Prior fix reference
- #31076 — stop rive before navigate (teardown-race pattern to apply here)
## PRs / people (no-ping)
- New surface (#32892): author `Kureev`; reviewers `Matt561`, `brianacnguyen`, `cmd-ob`
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Locate the Money onboarding card implementation added by #32892 and trace next_best_action_module_v1.riv, useRiveNumber, onError, and selectMoneyParallaxAnimationEnabledFlag. Compare its lifecycle with the teardown-race pattern in #31076, then verify both artboards, the static-image fallback, reduce-motion and kill-switch behavior, and unmounting while a frame is in flight.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react-native, typescript
- Domain
- mobile, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100