'use client'; import { Anchor, Card, CloseButton, Group, Image, Skeleton, Stack, Text, Tooltip, } from '@mantine/core'; import { useQuery } from '@tanstack/react-query'; import { createSembleClient } from '@/services/client.apiClient'; import { getDomain } from '@/lib/utils/link'; function SourceCardPreviewSkeleton() { return ( ); } interface Props { sourceUrl: string; onRemove?: () => void; } export default function SourceCardPreview(props: Props) { const { data, isLoading: isLoadingMetadata } = useQuery({ queryKey: ['url metadata', props.sourceUrl], queryFn: async () => { const client = createSembleClient(); return client.getUrlMetadata({ url: props.sourceUrl }); }, enabled: !!props.sourceUrl, }); if (isLoadingMetadata) { return ; } return ( {data?.metadata?.imageUrl && ( {`${data.metadata.title} )} {data?.metadata?.title || props.sourceUrl} e.stopPropagation()} > {getDomain(props.sourceUrl)} {props.onRemove && ( )} ); }