0520c57b3767

guard ADD_ENTRY with vault.isUnlocked() and surface vault-locked errors with actionable message

time
2026-04-29 16:23 UTC · 6 months ago
machine
koh2
parent
7a4d05b32d68
2 files src/background/messages.ts+1 −0src/popup/views/Add.tsx+9 −1
src/background/messages.ts+1 −0
@@ -161,6 +161,7 @@161161       case "GET_ENTRIES":162162         return { ok: true, data: vault.getEntries() };163163       case "ADD_ENTRY": {164+        if (!vault.isUnlocked()) return { ok: false, error: "vault locked" };164165         const entry = await vault.addEntry(msg.payload as any);165166         return { ok: true, data: entry };166167       }

view file

src/popup/views/Add.tsx+9 −1
@@ -195,7 +195,15 @@195195 196196     const res = await sendMessage({ type: "ADD_ENTRY", payload });197197     const result = res as { ok: boolean; data?: VaultEntry; error?: string };198-    if (!result.ok) { setError(result.error ?? "could not save entry"); setSaving(false); return; }198+    if (!result.ok) {199+      if (result.error === "vault locked") {200+        setError("vault is locked — tap the lock icon to re-enter your master password");201+      } else {202+        setError(result.error ?? "could not save entry");203+      }204+      setSaving(false);205+      return;206+    }199207     await props.onSave(result.data);200208   }201209 

view file