Skip to content

feat(account): phone sign-in, code verification and the account screen - #75

Merged
roncodes merged 1 commit into
release/v0.1.0from
feat/account
Oct 7, 2026
Merged

roncodes merged 1 commit into
release/v0.1.0from
feat/account

Conversation

@roncodes

@roncodes roncodes commented Oct 6, 2026

Copy link
Copy Markdown
Member

Stacked on #74. Redesigns sign-in, sign-up, code verification and the account screen to match the prototype.

Sign in and sign up

  • One phone-first screen for both. Sign-up adds a name field.
  • The country picker is a searchable sheet. It defaults to defaultCountry from the storefront config, then the device region.
  • Invalid numbers and failed sends show inline errors.
  • Apple, Google and Facebook buttons appear only when the build enables them.
  • Terms and privacy links appear when termsUrl / privacyUrl are configured.
  • Coming from checkout, the copy changes to "Sign in to place your order", and the customer goes straight back to checkout once verified. Before, they were left on the Profile tab.

Code verification

  • One screen covers sign-in, sign-up, adding a phone and confirming account deletion:
    • six boxes, backed by one hidden field, so paste and SMS autofill work;
    • auto-submits on the last digit;
    • inline "code didn't match" error, which clears the boxes;
    • "Change number" link and a 30-second resend timer.
  • Adding a phone is now a clear two-step flow: enter the number, then verify it.

Account screen

  • Profile header with Edit, plus a prompt to add a phone number when it's missing. This replaces the action sheet that used to pop up on every visit.
  • An active-order card that opens tracking.
  • Links to Orders, Offers, Saved places, Payment methods (Stripe only) and Notifications (with the unread count).
  • Language and appearance pickers, and Terms and Privacy links.
  • Sign out, and Delete account behind a confirmation sheet that sends the code.

Other

  • Route names are unchanged. Login, CreateAccount and Profile resolve to the new screens through the screen registry. The old login, verify, add-phone and profile screens are removed.
  • Web fix: the native Google Sign-In package crashed the web bundle as soon as the sign-in screen was imported. It now has a web shim, like the other native-only modules, and the Google button is hidden on web.
  • Auth and Account strings added in English, Mongolian and Ukrainian.

Checks

  • yarn jest: 192 passing, including new tests for the redirect hand-off and the Google Sign-In shim.
  • yarn typecheck:strict and yarn lint:strict pass with no errors.
  • Checked on web at phone width:
    • sign-in from checkout;
    • code entry, with the wrong-code error and resend;
    • the account screen with a test customer, plus the appearance and delete sheets.
  • Not tested live: completing a real sign-in, since the local API has no SMS provider.

Known issue (not from this PR)

On web, choosing Light while the device is in dark mode (or the reverse) leaves themed colours empty. The theme CSS only defines its variables inside prefers-color-scheme media queries. The appearance picker makes this easier to hit, so it's being fixed separately in the theme CSS post-processing.

- Sign in and sign up share one phone-first screen: searchable country
  picker, inline errors, enabled social providers, terms and privacy links.
- One code screen handles sign-in, sign-up, adding a phone and confirming
  account deletion: six boxes with SMS autofill, auto-submit, inline
  mismatch error and a resend timer.
- Signing in from checkout returns straight to the checkout.
- New account screen: profile header, add-phone prompt, active order,
  orders, offers, saved places, payment methods, notifications with an
  unread badge, language and appearance pickers, sign out and delete.
- Remove the screens these replace.
- Web: shim the native Google Sign-In package, which crashed the web
  bundle, and hide the Google button there.
Base automatically changed from feat/order-chat to release/v0.1.0 October 7, 2026 05:45
@roncodes
roncodes merged commit f27ca49 into release/v0.1.0 Oct 7, 2026
@roncodes
roncodes deleted the feat/account branch October 7, 2026 05:45
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.

1 participant