feat: configurable favicon service URL (#659)

This commit is contained in:
Alex Gleason 2025-11-14 05:28:10 -03:00 committed by GitHub
parent e544c0a801
commit f8cca5522f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
28 changed files with 151 additions and 20 deletions

View file

@ -1,4 +1,6 @@
import { faviconUrl } from '@/lib/faviconUrl'
import { cn } from '@/lib/utils'
import { useContentPolicy } from '@/providers/ContentPolicyProvider'
import { useState } from 'react'
export function Favicon({
@ -10,15 +12,18 @@ export function Favicon({
className?: string
fallback?: React.ReactNode
}) {
const { faviconUrlTemplate } = useContentPolicy()
const [loading, setLoading] = useState(true)
const [error, setError] = useState(false)
if (error) return fallback
const url = faviconUrl(faviconUrlTemplate, `https://${domain}`)
return (
<div className={cn('relative', className)}>
{loading && <div className={cn('absolute inset-0', className)}>{fallback}</div>}
<img
src={`https://${domain}/favicon.ico`}
src={url}
alt={domain}
className={cn('absolute inset-0', loading && 'opacity-0', className)}
onError={() => setError(true)}