import dynamic from 'next/dynamic' import type { FolderEntry } from '@/lib/client-types' import { formatBytes } from '@/lib/format-bytes' import WarningBanner from './WarningBanner' const ModelViewer = dynamic(() => import('../ModelViewer'), { ssr: false }) interface FolderCardProps { entry: FolderEntry index: number onToggleViewer: (index: number) => void onRemove: (index: number) => void } export default function FolderCard({ entry, index, onToggleViewer, onRemove }: FolderCardProps) { return (
{/* Status icon */}
{entry.status === 'success' ? (
) : entry.status === 'error' ? (
) : entry.status === 'uploading' ? (
) : ( )}
{/* Info */}
{entry.folderName}/ Dossier
modele : {entry.modelFile.name} {entry.status === 'error' && entry.error && ( {entry.error} )} {entry.status === 'success' && entry.filename && ( {entry.filename} )}
{entry.status === 'uploading' && (
)}
{/* Remove button */} {entry.status !== 'uploading' && ( )}
{/* Warning banner */} {entry.status !== 'success' && ( )} {/* 3D preview */} {entry.modelUrl && entry.status !== 'success' && (
)}
) }