Skip to content

feat(onboarding): collect display name in place of phone number - #1183

Merged
bmc08gt merged 2 commits into
code/cashfrom
feat/onboarding-display-name
Aug 5, 2026
Merged

feat(onboarding): collect display name in place of phone number#1183
bmc08gt merged 2 commits into
code/cashfrom
feat/onboarding-display-name

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

What

Replaces the phone-verification step in onboarding with display-name entry, reusing the existing tip-card UpdateUserProfile subflow. Onboarding is now ordered:

create account → access key → name → permissions (push)

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

  • Drop phone verification from onboarding. The contact-verification module stays intact — only the onboarding entry point changes.
  • Reuse the UpdateUserProfile subflow. After the access key (non-IAP) and purchase exits, route through the name subflow when no display name is set; its target hands off to the permissions phase on success. Full-screen rendering is inherent (the route isn't a Sheet), matching the old phone step's presentation.
  • Resume plumbing. AuthState.ResumePoint.PhoneNumberDisplayName; on app restart mid-onboarding the name step resumes after the access key (before that, resume at the access key regardless).
  • Cleanup. Removed the now-dead needsDisplayName plumbing from LoginViewModel.

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_setup maestro flow is updated accordingly.

Testing

  • LoginViewModel* unit tests + BuildNavGraphForLaunchTest updated and passing.
  • Maestro create_account subflow reordered (name after access key); tipping_setup updated. Both validated for syntax.
  • Compiled the affected modules (login, app, authentication, session, services/flipcash).

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.
@github-actions github-actions Bot added area: auth Login, session, access keys, identity area: network gRPC, connectivity, API, exchange rates area: session area: onboarding type: feature New functionality labels Aug 5, 2026
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.
@bmc08gt
bmc08gt merged commit 4e58e6b into code/cash Aug 5, 2026
2 of 3 checks passed
@bmc08gt
bmc08gt deleted the feat/onboarding-display-name branch August 5, 2026 18:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: auth Login, session, access keys, identity area: network gRPC, connectivity, API, exchange rates area: onboarding area: session type: feature New functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant