Skip to content

Recovery phrase page setup#3451

Merged
lmuntaner merged 8 commits intomainfrom
lm-recovery-phrase-page-setup
Oct 30, 2025
Merged

Recovery phrase page setup#3451
lmuntaner merged 8 commits intomainfrom
lm-recovery-phrase-page-setup

Conversation

@lmuntaner
Copy link
Copy Markdown
Contributor

@lmuntaner lmuntaner commented Oct 29, 2025

Motivation

Users can gain access to their identity using the recovery phrase.

In this PR, setup the page that will start the recovery flow.

In other PRs, refactor the recovery phrase component so it can be reused in the dashboard.

Changes

  • New route /recovery-phrase with page and layout.

Tests

Tested locally. See video and screenshot.

@lmuntaner
Copy link
Copy Markdown
Contributor Author

New UX:

Screen.Recording.2025-10-29.at.12.33.43.mov

Screenshot 2025-10-29 at 12 41 16

@lmuntaner lmuntaner requested a review from sea-snake October 29, 2025 14:12
@lmuntaner lmuntaner marked this pull request as ready for review October 29, 2025 14:12
@sea-snake
Copy link
Copy Markdown
Contributor

  1. Does the focus jump to the next input on tab/space/enter?
  2. Are they jumping in order (left to right, not top to bottom)
  3. Is the input font size 16px or larger? (anything smaller and iOS zooms in on the page...)
  4. What happens with the software keyboard on iOS? Does page content with inputs show and fit above it or are responsive adjustments needed?

See <div class="h-[var(--keyboard-inset-height)]"></div> in Dialog for a reference on how to handle mobile keyboards, it's a headache.

</div>
<div class="flex flex-col gap-3">
<div class="grid grid-cols-3 gap-3">
{#each Array(24) as _, i}
Copy link
Copy Markdown
Contributor

@sea-snake sea-snake Oct 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm surprised this works, in a JS function you wouldn't be able to map it and instead need to write Array.from( { length: 24 }).

image

Comment thread src/frontend/src/routes/(new-styling)/recovery-phrase/+page.svelte Outdated
@sea-snake
Copy link
Copy Markdown
Contributor

refactor the recovery phrase component so it can be reused in the dashboard.

This probably isn't needed since the recovery phrase is not an input on the dashboard.

But making the 24 inputs a separate component that checks for typos etc as specified in the design probably makes sense, then you could have value and onChange props that takes/returns the whole phrase.

@lmuntaner lmuntaner force-pushed the lm-recovery-phrase-page-setup branch from d8b8b5b to 2677983 Compare October 30, 2025 09:13
@lmuntaner
Copy link
Copy Markdown
Contributor Author

Thanks for the review!

I wasn't planning on doing so much in this PR, but why not...

Here is a video of moving with the keyboard:

Screen.Recording.2025-10-30.at.09.59.18.mov

I deployed it to beta, and it's super nice the behavior with the keyboard once I added your piece of code!

Yes, the input has size 16px.

@lmuntaner lmuntaner requested a review from sea-snake October 30, 2025 09:15
@lmuntaner lmuntaner added this pull request to the merge queue Oct 30, 2025
Merged via the queue into main with commit 4c5e725 Oct 30, 2025
75 checks passed
@lmuntaner lmuntaner deleted the lm-recovery-phrase-page-setup branch October 30, 2025 10:40
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.

2 participants