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
↓ peach-browser-4c8f4b2c.tar.gzatlas at this save
files changed3 files
manifest.firefox.json+1 −1manifest.json+1 −1src/popup/views/Entry.tsx+7 −1manifest.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": {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",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);