e416e9012b02
trash list grows to fill popup; favicon img onerror falls back to type icon (v2.1.2)
- time
- 2026-04-26 14:32 UTC · 6 months ago
- machine
- koh2
- parent
- ee1f6563c07d
↓ peach-browser-e416e901.tar.gzatlas at this save
files changed7 files
manifest.firefox.json+1 −1manifest.json+1 −1package.json+1 −1src/popup/styles/popup.css+9 −0src/popup/views/Entry.tsx+8 −1src/popup/views/TrashView.tsx+2 −2src/popup/views/Vault.tsx+11 −2manifest.firefox.json+1 −1
@@ -1,7 +1,7 @@11 {22 "manifest_version": 3,33 "name": "Peach",4- "version": "2.1.1",4+ "version": "2.1.2",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.1.1",4+ "version": "2.1.2",55 "description": "Zero-knowledge password manager",66 "action": {77 "default_popup": "src/popup/index.html",package.json+1 −1
@@ -1,6 +1,6 @@11 {22 "name": "peach",3- "version": "2.1.1",3+ "version": "2.1.2",44 "description": "Zero-knowledge password manager",55 "type": "module",66 "scripts": {src/popup/styles/popup.css+9 −0
@@ -4602,6 +4602,15 @@46024602 gap: 4px;46034603 flex-shrink: 0;46044604 }4605+.peach-trash-list {4606+ flex: 1;4607+ min-height: 0;4608+ overflow-y: auto;4609+}4610+.peach-trash-notice {4611+ margin: 0 20px 16px;4612+ margin-top: auto;4613+}46054614 46064615 /* ── Settings shortcuts grid ─────────────────────────────────────────── */46074616 .peach-shortcuts-grid {src/popup/views/Entry.tsx+8 −1
@@ -480,7 +480,14 @@480480 onClick={() => startEdit("url", entry().url ?? "")}481481 >482482 <Show when={faviconSrc()}>483- <img src={faviconSrc()!} width="16" height="16" alt="" style="border-radius:3px;margin-right:5px;flex-shrink:0;" />483+ <img484+ src={faviconSrc()!}485+ width="16"486+ height="16"487+ alt=""488+ style="border-radius:3px;margin-right:5px;flex-shrink:0;"489+ onError={(e) => { (e.currentTarget as HTMLImageElement).style.display = "none"; }}490+ />484491 </Show>485492 <span class="peach-domain-value">486493 {displayDomain() || (entry().url ? entry().url : "add a website url")}src/popup/views/TrashView.tsx+2 −2
@@ -77,7 +77,7 @@7777 </Show>7878 7979 <Show when={!loading() && deleted().length > 0}>80- <div class="peach-settings-group">80+ <div class="peach-settings-group peach-trash-list">8181 <p class="peach-settings-label">8282 {deleted().length} deleted {deleted().length === 1 ? "entry" : "entries"}8383 </p>@@ -166,7 +166,7 @@166166 </div>167167 </div>168168 169- <div class="peach-info-notice" style="margin:0 20px 16px">169+ <div class="peach-info-notice peach-trash-notice">170170 Deleted entries are auto-removed based on your trash retention setting.171171 </div>172172 </Show>src/popup/views/Vault.tsx+11 −2
@@ -7,9 +7,18 @@77 const src = props.domain && !props.isNote && !props.isPasskey88 ? faviconUrl(props.domain)99 : null;10+ const fallback = props.isPasskey ? PASSKEY_ICON : props.isNote ? NOTE_ICON : LOGIN_ICON;11+ const [failed, setFailed] = createSignal(false);1012 return (11- <Show when={src} fallback={props.isPasskey ? PASSKEY_ICON : props.isNote ? NOTE_ICON : LOGIN_ICON}>12- <img src={src!} width="16" height="16" alt="" style="border-radius:3px;" />13+ <Show when={src && !failed()} fallback={fallback}>14+ <img15+ src={src!}16+ width="16"17+ height="16"18+ alt=""19+ style="border-radius:3px;"20+ onError={() => setFailed(true)}21+ />1322 </Show>1423 );1524 }