-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
chore: Update card welcome splash screen #23706
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
base: main
Are you sure you want to change the base?
chore: Update card welcome splash screen #23706
Conversation
|
CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes. |
app/components/UI/Card/components/Onboarding/SetPhoneNumber.tsx
Outdated
Show resolved
Hide resolved
app/components/UI/Card/components/Onboarding/SetPhoneNumber.tsx
Outdated
Show resolved
Hide resolved
cc02e32 to
218d54f
Compare
| useState<string>(initialSelectedCountryAreaCode); | ||
| const [selectedCountryIsoCode, setSelectedCountryIsoCode] = useState<string>( | ||
| selectedCountry || 'US', | ||
| ); |
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.
Bug: State initialization may use stale async data
The selectedCountryAreaCode and selectedCountryIsoCode states are initialized from initialSelectedCountryAreaCode (a useMemo depending on registrationSettings) and selectedCountry, respectively. Since useState only uses the initial value on first render, if registrationSettings loads asynchronously after mount or selectedCountry changes in Redux, these state values won't be updated. This could cause the country area code dropdown to display incorrect values (e.g., always showing '+1' regardless of the user's selected country) until manually changed.
|
|
||
| const createStyles = (theme: Theme, deviceWidth: number) => | ||
| // Responsive scaling utilities | ||
| const { width: screenWidth, height: screenHeight } = Dimensions.get('window'); |
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.
Bug: Screen dimensions captured at module load won't update
Dimensions.get('window') is called at module initialization time (line 6), meaning screenWidth, screenHeight, and all derived scaling values are computed once when the module loads. These values won't update if the device rotates, enters split-screen mode, or if it's a foldable device that changes dimensions. This could cause incorrect layout calculations on tablets, foldables, or when orientation changes.
Update nav options Update Signup Update ConfirmEmail Update ConfirmPhoneNumber Update Address Update VerifyIdentity Update PersonalDetails Update KYC success and failure Update tests Update index.test.tsx.snap
407e1fc to
3988423
Compare
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsThe changes are entirely focused on the MetaMask Card feature:
Only
|
|


Update nav options
Update Signup
Update ConfirmEmail
Update ConfirmPhoneNumber
Update Address
Update VerifyIdentity
Update PersonalDetails
Update KYC success and failure
Description
Update card onboarding flow according to new design
CARD-213
CARD-216
CARD-217
CARD-220
Half of CARD-221 since address search and autocompletion requires a new library
CARD-222
CARD-223
CARD-224
Changelog
CHANGELOG entry: Update card onboarding flow according to new design
Related issues
Fixes:
Manual testing steps
Screenshots/Recordings
Before
After
Pre-merge reviewer checklist
Note
Revamps MetaMask Card onboarding with new UI, navigation flow (adds Complete, updates Validating/KYCFailed), improved input/resend UX, metrics, and updated copy; removes legacy consent/mailing steps.
VerifyIdentity,ValidatingKYC,KYCFailed,Complete,CardWelcome) with new images, typography, and responsive layouts; updatesOnboardingStepstructure.countryCodeToFlagand usesISO-callingCodevalues.Routes.CARD.ONBOARDING.COMPLETE;ValidatingKYCnow resets toCOMPLETEorKYC_FAILED.PhysicalAddressnow routes toVERIFY_IDENTITYon success; removes mailing-address and consent checkbox flow.ConfirmEmail/ConfirmPhoneNumber: resend control split into hint + clickable link; updated cooldown handling.SelectComponent: supportsdisabledandshowDropDownprops; blocks picker when disabled.Written by Cursor Bugbot for commit 3988423. This will update automatically on new commits. Configure here.