aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-11-02 15:30:16 -0700
committerAdam Soltys <[email protected]>2026-11-02 15:30:16 -0700
commit9fb6e8f191d6bc66fde89d22f21d83c9fa42eb06 (patch)
treea510f2d8f9395d594acc50eae53fb032db4b0b72 /src
parent071f8db3bd7799abe4a6acf7c32f107eef0d00c2 (diff)
downloadcoinosv3-9fb6e8f191d6bc66fde89d22f21d83c9fa42eb06.tar.gz
coinosv3-9fb6e8f191d6bc66fde89d22f21d83c9fa42eb06.zip
The front page has a door for a wallet made elsewhere: "Restore from twelve words", straight to the phrase field. "Signing in on another device … it was hard to find how until I realised you click to make a new wallet, where then you get the option to use the seed phrase for an existing wallet" (user feedback, 2026-11-02): the import used to hide as a line under the freshly minted words behind "Create a new wallet". It sits below the sign-in buttons with the migrate door, and the step it opens is titled "Restore your wallet" rather than "Set up your wallet". tools/onboard-backup-test.js checks the door, that it opens on the phrase field with no minted words, and that a typed phrase opens the wallet
Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01VMan6TFgisGKUDhdStLUvs
Diffstat (limited to 'src')
-rw-r--r--src/app.js15
-rw-r--r--src/i18n.js2
2 files changed, 16 insertions, 1 deletions
diff --git a/src/app.js b/src/app.js
index 69c6275..2bc7a39 100644
--- a/src/app.js
+++ b/src/app.js
@@ -4160,6 +4160,19 @@ function onboardScreen() {
}, t('onbStart')),
h('div', { class: 'onb-or' }, h('span', {}, t('onbOrSignIn'))),
signinDoors(),
+ // Bringing a wallet from another device: its twelve words, typed in.
+ // This used to hide as a line under the freshly minted words behind
+ // "Create a new wallet", where a person signing in on their second
+ // phone found it only by chance (user feedback, 2026-11-02). Its own
+ // door, straight to the import pane.
+ h('button', { id: 'onb-restore', class: 'btn-block', style: 'padding:14px', onClick: () => {
+ clearSeedDrafts();
+ ui.unlockTab = 'import';
+ ui.unlockError = '';
+ ui.onbError = '';
+ o.step = 'seed';
+ render();
+ } }, t('onbRestoreDoor')),
// The move from the original coinos.io used to wait behind the
// Spending offer, where nobody looking for it found it. Its own door
// on the front page: it stashes the intent the /migrate link stashes
@@ -4234,7 +4247,7 @@ function onboardScreen() {
// means seeing (or bringing) your seed phrase, not a wallet minted
// behind your back. Opening one ends the wizard into the wallet + tour.
return page([
- title(t('onbSeedTitle')),
+ title(t(ui.unlockTab === 'import' ? 'onbRestoreTitle' : 'onbSeedTitle')),
unlockCard(),
// the entropy page brings its own Back — one is enough
ui.entropyPage ? null : h('button', { class: 'linklike small', onClick: () => { ui.unlockError = ''; o.step = 'welcome'; render(); } }, t('back')),
diff --git a/src/i18n.js b/src/i18n.js
index b944f96..ac6066a 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -1396,6 +1396,8 @@ const STR = {
backupReminder: 'Your recovery phrase is still unwritten.',
backupReminderGo: 'Write it down',
onbSeedTitle: 'Set up your wallet',
+ onbRestoreTitle: 'Restore your wallet',
+ onbRestoreDoor: 'Restore from twelve words',
onbSigninTitle: 'Sign in',
onbLegacyTitle: 'Move your coinos.io account',
onbLegacyBody: 'The original coinos. We can move your balance over and point your username here. Your old account keeps working, it just stops receiving payments.',