feat: refactor website icon handling by moving utility functions to a dedicated module

This commit is contained in:
shuaiplus
2026-04-29 00:20:17 +08:00
parent 68ded534a4
commit 3c5f43ecc2
5 changed files with 29 additions and 47 deletions
-1
View File
@@ -72,7 +72,6 @@ export function preloadWebsiteIcon(host: string, src: string): Promise<WebsiteIc
record.promise = new Promise<WebsiteIconStatus>((resolve) => {
const img = new Image();
img.decoding = 'async';
img.loading = 'eager';
img.referrerPolicy = 'no-referrer';
img.onload = () => {
markWebsiteIconLoaded(host);
+24
View File
@@ -0,0 +1,24 @@
import type { Cipher } from './types';
export function firstCipherUri(cipher: Cipher): string {
const uris = cipher.login?.uris || [];
for (const uri of uris) {
const raw = uri.decUri || uri.uri || '';
if (raw.trim()) return raw.trim();
}
return '';
}
export function hostFromUri(uri: string): string {
if (!uri.trim()) return '';
try {
const normalized = /^https?:\/\//i.test(uri) ? uri : `https://${uri}`;
return new URL(normalized).hostname || '';
} catch {
return '';
}
}
export function websiteIconUrl(host: string): string {
return `/icons/${encodeURIComponent(host)}/icon.png?fallback=404`;
}