import React from 'react' /** * LinkPreviewCard * Renders an OG/OpenGraph link preview card. * * Props: * preview { url, title, description, image, site_name } * onDismiss function|null — if provided, shows a dismiss ✕ button * loading boolean — shows skeleton while fetching */ export default function LinkPreviewCard({ preview, onDismiss, loading = false }) { if (loading) { return (
) } if (!preview?.url) return null const domain = (() => { try { return new URL(preview.url).hostname.replace(/^www\./, '') } catch { return preview.site_name ?? '' } })() return (
e.stopPropagation()} > {/* Image */} {preview.image ? (
{ e.currentTarget.parentElement.style.display = 'none' }} />
) : (
)} {/* Text */}
{preview.site_name && (

{preview.site_name}

)} {preview.title && (

{preview.title}

)} {preview.description && (

{preview.description}

)}

{domain}

{/* Dismiss button */} {onDismiss && ( )}
) }