4c8f4b2cdb09

fix +add username race: only reset edit state on actual entry id change, not on same-entry refresh after onFieldSaved (v2.33.3)

time
2026-05-07 01:02 UTC · 5 months ago
machine
koh2
parent
6ea3c83640b8
3 files manifest.firefox.json+1 −1manifest.json+1 −1src/popup/views/Entry.tsx+7 −1
manifest.firefox.json+1 −1
@@ -1,7 +1,7 @@11 {22   "manifest_version": 3,33   "name": "Peach",4-  "version": "2.33.2",4+  "version": "2.33.3",55   "description": "Zero-knowledge password manager",66   "browser_specific_settings": {77     "gecko": {

view file

manifest.json+1 −1
@@ -1,7 +1,7 @@11 {22   "manifest_version": 3,33   "name": "Peach",4-  "version": "2.33.2",4+  "version": "2.33.3",55   "description": "Zero-knowledge password manager",66   "action": {77     "default_popup": "src/popup/index.html",

view file

src/popup/views/Entry.tsx+7 −1
@@ -91,8 +91,14 @@9191 9292   // Reset transient prompts (trash confirmation, inline edits, advanced panel)9393   // when the selected entry changes so they don't carry over between entries.94+  // Track the last id so a same-entry refresh (e.g. after saving a field)95+  // doesn't blow away in-flight edit state — that race used to cancel96+  // startEdit calls that ran right after onFieldSaved.97+  let lastEntryId: string | null = null;9498   createEffect(() => {95-    void props.entry?.id;99+    const id = props.entry?.id ?? null;100+    if (id === lastEntryId) return;101+    lastEntryId = id;96102     setConfirmDelete(false);97103     setEditingField(null);98104     setEditingTags(false);

view file