import { useFetchWebMetadata } from '@/hooks/useFetchWebMetadata' import { cn } from '@/lib/utils' import { useScreenSize } from '@/providers/ScreenSizeProvider' import { useMemo } from 'react' import Image from '../Image' export default function WebPreview({ url, className, size = 'normal' }: { url: string className?: string size?: 'normal' | 'small' }) { const { isSmallScreen } = useScreenSize() const { title, description, image } = useFetchWebMetadata(url) const hostname = useMemo(() => { try { return new URL(url).hostname } catch { return '' } }, [url]) if (!title) { return null } if (isSmallScreen && image) { return (
{hostname}
{title}
) } return (
{ e.stopPropagation() window.open(url, '_blank') }} > {image && ( )}
{hostname}
{title}
{description}
) }