import { ImageOff } from 'lucide-react';
import { cn } from '@/lib/utils';

type TableImageCellProps = {
    src: string | null | undefined;
    alt?: string;
    // Kelas untuk wadah (size, rounded, border, bg). Default: persegi rounded.
    className?: string;
    // Kelas untuk <img>. Default: isi penuh wadah.
    imgClassName?: string;
    // Kelas untuk ikon fallback.
    iconClassName?: string;
};

/**
 * Sel gambar di tabel admin — menampilkan thumbnail bila ada, atau ikon
 * `ImageOff` sebagai fallback bila tidak ada gambar.
 */
export function TableImageCell({
    src,
    alt,
    className,
    imgClassName = 'size-full object-cover',
    iconClassName = 'size-5',
}: TableImageCellProps) {
    return (
        <div
            className={cn(
                'flex items-center justify-center overflow-hidden rounded-md border bg-muted text-muted-foreground',
                className,
            )}
        >
            {src ? (
                <img src={src} alt={alt} className={imgClassName} />
            ) : (
                <ImageOff className={iconClassName} />
            )}
        </div>
    );
}
