Allow custom favicon URL. Closes #3365

This commit is contained in:
Mike Cao 2025-04-25 13:59:23 -07:00
parent ffa8d8dd88
commit 02f0df3a2e
3 changed files with 14 additions and 10 deletions

View file

@ -1,4 +1,4 @@
import { GROUPED_DOMAINS } from '@/lib/constants';
import { FAVICON_URL, GROUPED_DOMAINS } from '@/lib/constants';
function getHostName(url: string) {
const match = url.match(/^(?:https?:\/\/)?(?:[^@\n]+@)?([^:/\n?=]+)/im);
@ -10,10 +10,10 @@ export function Favicon({ domain, ...props }) {
return null;
}
const url = process.env.faviconURL || FAVICON_URL;
const hostName = domain ? getHostName(domain) : null;
const src = hostName
? `https://icons.duckduckgo.com/ip3/${GROUPED_DOMAINS[hostName]?.domain || hostName}.ico`
: null;
const domainName = GROUPED_DOMAINS[hostName]?.domain || hostName;
const src = hostName ? url.replace(/\{\{\s*domain\s*}}/, domainName) : null;
return hostName ? <img src={src} width={16} height={16} alt="" {...props} /> : null;
}

View file

@ -12,6 +12,7 @@ export const HOMEPAGE_URL = 'https://umami.is';
export const REPO_URL = 'https://github.com/umami-software/umami';
export const UPDATES_URL = 'https://api.umami.is/v1/updates';
export const TELEMETRY_PIXEL = 'https://i.umami.is/a.png';
export const FAVICON_URL = 'https://icons.duckduckgo.com/ip3/{{domain}}.ico';
export const DEFAULT_LOCALE = process.env.defaultLocale || 'en-US';
export const DEFAULT_THEME = 'light';