Skip to content

fix(deploy): show mobile signer disabled (not hidden) when logged out#379

Merged
UtkarshBhardwaj007 merged 1 commit into
mainfrom
deploy-signer-disabled-phone
Jun 13, 2026
Merged

fix(deploy): show mobile signer disabled (not hidden) when logged out#379
UtkarshBhardwaj007 merged 1 commit into
mainfrom
deploy-signer-disabled-phone

Conversation

@UtkarshBhardwaj007

Copy link
Copy Markdown
Member

What

When playground deploy runs without a logged-in mobile session, the signer picker previously hid the phone option and showed only the dev signer. This makes the feature less discoverable and the warning placement awkward.

Two UX fixes:

  1. Mobile signer is now visible but disabled — greyed out and unselectable, with a hint of requires \playground login` first`. The cursor skips it and defaults to the dev signer.
  2. The "Mobile signing unavailable" warning moved below the options (it was above), matching the placement of the dev-no-XP notice.

How

  • Added disabled?: boolean to the shared Select component's SelectOption. Disabled options render dimmed, the initial cursor skips them, arrow navigation skips them in both directions, and Enter is guarded against confirming one.
  • The cursor-navigation helpers (firstEnabledIndex/nextEnabledIndex) are lifted into a sibling selectNav.ts (per the repo convention of keeping pure logic out of .tsx) and unit-tested directly.
  • deploySignerOptions(hasSession) now always returns both options, with the phone option disabled when there is no session.
  • Reordered the prompt-signer callouts in DeployScreen to sit below the options.

Notes

  • playground decentralize intentionally keeps its phone option selectable-but-errors-on-select (established UX); a cross-reference comment documents the divergence.
  • All four CI checks pass locally (format:check, lint:license, typecheck, test — 937 tests).

Test plan

  • selectNav.test.ts: covers disabled-start skip, wrap-around, all-disabled fallback, single-option, mid/tail-disabled in both directions, and the deploy logged-out case (cursor never lands on the disabled phone option).
  • signerNotice.test.ts: updated to assert the phone option is shown disabled (not hidden) when logged out.

When `playground deploy` runs without a logged-in session, the signer
picker now renders the phone signer greyed out and unselectable instead
of omitting it, so users can see the option exists. The cursor skips
disabled options and defaults to the dev signer. The "mobile signing
unavailable" notice moved below the options.

Adds `disabled` support to the shared `Select` component, with the
cursor-navigation helpers lifted into `selectNav.ts` and unit-tested.
@UtkarshBhardwaj007 UtkarshBhardwaj007 merged commit f3e00d2 into main Jun 13, 2026
19 of 20 checks passed
@UtkarshBhardwaj007 UtkarshBhardwaj007 deleted the deploy-signer-disabled-phone branch June 13, 2026 13:41
@github-actions

Copy link
Copy Markdown
Contributor

E2E Test Pass · ✅ PASS

Tag: e2e-ci-pr · Branch: deploy-signer-disabled-phone · Commit: 6dd1a9e · Run logs

Cell Result Time
pr-deploy-cdm ✅ PASS 3m33s
pr-mod ✅ PASS 1m32s
pr-preflight ✅ PASS 3m00s
pr-deploy-foundry ✅ PASS 0m43s
pr-login-session ✅ PASS 1m59s
pr-install ✅ PASS 1m36s
pr-deploy-frontend ✅ PASS 9m42s
${{ matrix.cell }} ⏭️ SKIP 0m-7s
${{ matrix.cell }} ⏭️ SKIP 0m-8s

Sentry traces: view spans for this run

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