7a4d05b32d68

show specific blocker message on disabled create vault button

time
2026-04-29 16:21 UTC · 6 months ago
machine
koh2
parent
7e9b7808076a
1 file src/popup/views/Lock.tsx+17 −1
src/popup/views/Lock.tsx+17 −1
@@ -60,6 +60,16 @@6060     return "strong";6161   });6262 63+  const createBlockerMessage = createMemo(() => {64+    if (!password()) return null;65+    if (password().length < MIN_LENGTH) return `need ${MIN_LENGTH - password().length} more characters`;66+    if (!confirmPassword()) return "confirm your password";67+    if (password() !== confirmPassword()) return "passwords don't match";68+    if (strengthScore() === null) return "checking strength…";69+    if (strengthScore()! < MIN_ZXCVBN_SCORE) return "password too weak — add words or length";70+    return null;71+  });72+6373   // Update strength asynchronously when password changes6474   createMemo(() => {6575     const value = password();@@ -371,8 +381,14 @@371381               class="peach-btn peach-btn--accent peach-btn--md peach-lock-submit peach-newvault-submit"372382               onClick={() => void handleCreate()}373383               disabled={!props.ready || loading() || !canCreate()}384+              aria-live="polite"374385             >375-              {loading() ? "creating..." : "create vault"}386+              <Show387+                when={!canCreate() && createBlockerMessage()}388+                fallback={loading() ? "creating..." : "create vault"}389+              >390+                {createBlockerMessage()}391+              </Show>376392             </button>377393 378394             <p class="peach-newvault-warning">

view file