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 ? (
) : (
)}
);
}