feat(onboarding): collect display name in place of phone number - #1183
Merged
Conversation
Replace the phone-verification step in onboarding with display-name entry, reusing the existing UpdateUserProfile subflow. Onboarding is now ordered: create account → access key → name → permissions (push). - Drop phone verification from onboarding. The contact-verification module stays intact (still used for Coinbase onramp / payment linking). - Route the access-key (non-IAP) and purchase exits through the UpdateUserProfile subflow when no display name is set; its `target` hands off to the permissions phase on success. Full-screen rendering is inherent (the route is not a Sheet), matching the old phone step. - Rename AuthState.ResumePoint.PhoneNumber -> DisplayName; on app restart the name step resumes after the access key. - Remove the now-dead needsDisplayName plumbing from LoginViewModel. - Update the maestro onboarding subflow (name after access key) and the BuildNavGraphForLaunch / login VM tests.
Add AppRoute.UpdateUserProfile.allowBack (default true). Onboarding launches the display-name subflow with allowBack = false so NameEntryScreen renders no back affordance and swallows the system back gesture — the step is mandatory. Tip-card setup and profile editing keep the back button.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Replaces the phone-verification step in onboarding with display-name entry, reusing the existing tip-card
UpdateUserProfilesubflow. Onboarding is now ordered:Why
We want onboarding to capture a display name (used for tip cards, chat, etc.) rather than a phone number. The phone step is removed from the onboarding path; phone verification itself is untouched and still available for Coinbase onramp / payment linking.
How
contact-verificationmodule stays intact — only the onboarding entry point changes.UpdateUserProfilesubflow. After the access key (non-IAP) and purchase exits, route through the name subflow when no display name is set; itstargethands off to the permissions phase on success. Full-screen rendering is inherent (the route isn't aSheet), matching the old phone step's presentation.AuthState.ResumePoint.PhoneNumber→DisplayName; on app restart mid-onboarding the name step resumes after the access key (before that, resume at the access key regardless).needsDisplayNameplumbing fromLoginViewModel.Behavioral note
Because the display name is captured during onboarding, new accounts skip the tip-card setup's name prompt (the tip flow lands directly on the Tips list). Existing users who onboarded without a display name still get the tip-setup name path. The
tipping_setupmaestro flow is updated accordingly.Testing
LoginViewModel*unit tests +BuildNavGraphForLaunchTestupdated and passing.create_accountsubflow reordered (name after access key);tipping_setupupdated. Both validated for syntax.login,app,authentication,session,services/flipcash).