6e813d9fe0e6
fix filter dismiss bug and styled scrollbar on identity suggestion list
- time
- 2026-05-10 23:47 UTC · 5 months ago
- machine
- koh2
- parent
- 451d5a169ed5
↓ peach-browser-6e813d9f.tar.gzatlas at this save
files changed6 files
manifest.firefox.json+1 −1manifest.json+1 −1package.json+1 −1src/content/inject.ts+8 −2src/popup/styles/popup.css+15 −0src/popup/views/Add.tsx+2 −2manifest.firefox.json+1 −1
@@ -1,7 +1,7 @@11 {22 "manifest_version": 3,33 "name": "Peach",4- "version": "2.38.11",4+ "version": "2.38.12",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.38.11",4+ "version": "2.38.12",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.38.11",3+ "version": "2.38.12",44 "description": "Zero-knowledge password manager",55 "type": "module",66 "scripts": {src/content/inject.ts+8 −2
@@ -1106,7 +1106,11 @@11061106 .identity-rows { display: grid; grid-template-rows: 1fr;11071107 transition: grid-template-rows 220ms cubic-bezier(0.16,1,0.3,1); }11081108 .identity-rows.is-collapsed { grid-template-rows: 0fr; }1109- .identity-rows-inner { overflow: hidden; min-height: 0; }1109+ .identity-rows-inner { overflow-y: auto; min-height: 0; max-height: 148px;1110+ scrollbar-width: thin; scrollbar-color: var(--peach-text-muted) transparent; }1111+ .identity-rows-inner::-webkit-scrollbar { width: 4px; }1112+ .identity-rows-inner::-webkit-scrollbar-track { background: transparent; }1113+ .identity-rows-inner::-webkit-scrollbar-thumb { background: var(--peach-text-muted); border-radius: 2px; }11101114 .identity-filter-pill {11111115 padding: 2px 7px; border-radius: 999px;11121116 border: 1px solid var(--peach-input-border);@@ -1657,7 +1661,9 @@16571661 .filter(s => (activeFilter === "all" || s.type === activeFilter) && (!q || s.value.toLowerCase().includes(q)))16581662 .slice(0, 8);16591663 rows.innerHTML = "";1660- if (!filtered.length) { list.style.display = rows.children.length === 0 ? "none" : ""; return; }1664+ // Keep the list visible when the filter produces no results — hide only1665+ // when there are genuinely no identities to show (handled by the caller).1666+ if (!filtered.length) return;16611667 for (const s of filtered) {16621668 const row = rows.appendChild(document.createElement("button"));16631669 row.type = "button"; row.className = "identity-suggest-row";src/popup/styles/popup.css+15 −0
@@ -5213,6 +5213,21 @@52135213 overflow-y: auto;52145214 min-height: 0;52155215 max-height: 148px;5216+ scrollbar-width: thin;5217+ scrollbar-color: var(--peach-t3) transparent;5218+}5219+5220+.peach-identity-rows-inner::-webkit-scrollbar {5221+ width: 4px;5222+}5223+5224+.peach-identity-rows-inner::-webkit-scrollbar-track {5225+ background: transparent;5226+}5227+5228+.peach-identity-rows-inner::-webkit-scrollbar-thumb {5229+ background: var(--peach-t3);5230+ border-radius: 2px;52165231 }52175232 52185233 .peach-identity-filter-pill {src/popup/views/Add.tsx+2 −2
@@ -360,7 +360,7 @@360360 onBlur={() => setTimeout(() => setActiveIdentityField(null), 150)}361361 />362362 </div>363- <Show when={activeIdentityField() === "username" && identitySuggestions().length > 0}>363+ <Show when={activeIdentityField() === "username" && allIdentities().length > 0}>364364 <IdentitySuggestList365365 suggestions={identitySuggestions()}366366 filter={identityFilter()}@@ -385,7 +385,7 @@385385 onBlur={() => setTimeout(() => setActiveIdentityField(null), 150)}386386 />387387 </div>388- <Show when={activeIdentityField() === "email" && identitySuggestions().length > 0}>388+ <Show when={activeIdentityField() === "email" && allIdentities().length > 0}>389389 <IdentitySuggestList390390 suggestions={identitySuggestions()}391391 filter={identityFilter()}