3b0605503593
render passkey entries with favicon or coloured initials instead of search-like key icon
- time
- 2026-08-13 19:14 UTC · 2 months ago
- machine
- koh2
- agent
- deepseek-v4-flash
- session
- vault passkey icon
- parent
- 0a86c74f2b4c
↓ peach-browser-3b060550.tar.gzatlas at this save
files changed1 file
src/popup/views/Vault.tsx+8 −15src/popup/views/Vault.tsx+8 −15
@@ -17,12 +17,14 @@1717 }1818 1919 function FaviconIcon(props: { domain: string; title?: string; isNote: boolean; isPasskey: boolean }) {20- const src = props.domain && !props.isNote && !props.isPasskey20+ const src = props.domain && !props.isNote2121 ? faviconUrl(props.domain)2222 : null;2323 const [isReal, setIsReal] = createSignal(false);2424 25- // Show InitialsChip (or passkey/note icon) first — no globe flash.25+ // Show InitialsChip (or note icon) first — no globe flash. Passkeys use the26+ // same coloured initials / real favicon as logins; the row's "passkey" text27+ // badge still distinguishes them.2628 // Load the favicon invisibly in the background; switch to it only after2729 // confirming it differs from Chrome's default "no favicon" globe image.2830 return (@@ -30,11 +32,9 @@3032 when={isReal()}3133 fallback={3234 <>33- {props.isPasskey34- ? <PasskeyIcon />35- : props.isNote36- ? <NoteIcon />37- : <InitialsChip title={props.title ?? props.domain ?? ""} />}35+ {props.isNote36+ ? <NoteIcon />37+ : <InitialsChip title={props.title ?? props.domain ?? ""} />}3838 {src && (3939 <img4040 src={src}@@ -78,13 +78,6 @@7878 }7979 8080 81-const PasskeyIcon = () => (82- <svg width="11" height="12" viewBox="0 0 11 12" fill="none" stroke="currentColor" stroke-width="0.9" stroke-linecap="round" aria-hidden="true">83- <circle cx="4" cy="4.5" r="3" />84- <path d="M6.5 7l3.5 3.5M8.5 8.5L10 10" />85- </svg>86-);87-8881 const NoteIcon = () => (8982 <svg width="11" height="12" viewBox="0 0 11 12" fill="none" stroke="currentColor" stroke-width="0.9" stroke-linecap="round" aria-hidden="true">9083 <rect x="1.5" y="1.5" width="8" height="9" rx="1.5" />@@ -562,7 +555,7 @@562555 when={selecting()}563556 fallback={564557 <FaviconIcon565- domain={entry.url ? getDisplayDomain(entry.url) : ""}558+ domain={entry.type === "note" ? "" : (entry.url ? getDisplayDomain(entry.url) : entry.passkey?.rpId ?? "")}566559 title={entry.title}567560 isNote={isNote}568561 isPasskey={isPasskey}