diff --git a/web/src/hooks/use-site-config.tsx b/web/src/hooks/use-site-config.tsx index 091a98b..4611887 100644 --- a/web/src/hooks/use-site-config.tsx +++ b/web/src/hooks/use-site-config.tsx @@ -42,10 +42,15 @@ export function SiteConfigProvider({ children }: { children: ReactNode }) { attribution_url: data.attribution_url || "https://keygate.app", loading: false, }) - // Dynamic favicon from custom logo + // Dynamic favicon from custom logo. index.html declares + // multiple variants and browsers pick their + // favorite (often the sizes="32x32" one), so rewriting only + // the first link never visibly changed the tab icon — update + // them all. if (data.logo_url) { - const link = document.querySelector("link[rel='icon']") as HTMLLinkElement - if (link) link.href = data.logo_url + document.querySelectorAll("link[rel~='icon']").forEach((link) => { + link.href = data.logo_url + }) } if (data.brand_color) { document.documentElement.style.setProperty("--color-primary", data.brand_color)