import { IconX, IconPlayerPlay, IconLoader2 } from "@tabler/icons-react"; import { cn } from "@/lib/utils"; import { getMediaTypeFromDataUri } from "@/lib/media-utils"; interface ThumbnailWrapperProps { onClick?: () => void; onRemove?: () => void; sizeClass: string; children: React.ReactNode; } function ThumbnailWrapper({ onClick, onRemove, sizeClass, children }: ThumbnailWrapperProps) { return (
{children}
{onRemove && ( )}
); } interface MediaThumbnailProps { src?: string; onClick?: () => void; onRemove?: () => void; size?: "sm" | "md"; className?: string; } export function MediaThumbnail({ src, onClick, onRemove, size = "md", className }: MediaThumbnailProps) { const sizeClass = size === "sm" ? "size-12" : "size-16"; const isLoading = !src; const isVideo = src && getMediaTypeFromDataUri(src) === "video"; return ( {isLoading ? (
) : isVideo ? (
) : ( Media )}
); }