'use client'; import Spinner from '@/components/Spinner'; import { getIdFromStorageUrl, getExtensionFromStorageUrl, } from '@/platforms/storage'; import { clsx } from 'clsx/lite'; import { FaRegCircleCheck } from 'react-icons/fa6'; import { pathForAdminUploadUrl } from '@/app/paths'; import AddButton from './AddButton'; import { UrlAddStatus } from './AdminUploadsClient'; import ResponsiveDate from '@/components/ResponsiveDate'; import DeleteBlobButton from './DeleteUploadButton'; import ImageMedium from '@/components/image/ImageMedium'; export default function AdminUploadsTable({ isAdding, urlAddStatuses, setUrlAddStatuses, isDeleting, }: { isAdding?: boolean urlAddStatuses: UrlAddStatus[] setUrlAddStatuses?: (urlAddStatuses: UrlAddStatus[]) => void isDeleting?: boolean }) { const isComplete = urlAddStatuses.every(({ status }) => status === 'added'); return (
{urlAddStatuses.map(({ url, status, statusMessage, uploadedAt, size }) =>
{uploadedAt ? : '—'}
{isAdding || isComplete ? status === 'added' ? 'Added' : status === 'adding' ? statusMessage ?? 'Adding ...' : 'Waiting' : size // eslint-disable-next-line max-len ? `${size} ${getExtensionFromStorageUrl(url)?.toUpperCase()}` : getExtensionFromStorageUrl(url)?.toUpperCase()}
{isAdding || isComplete ? <> {status === 'added' ? : status === 'adding' ? : } : <> setUrlAddStatuses?.(urlAddStatuses .filter(({ url: urlToRemove }) => urlToRemove !== url))} isLoading={isDeleting} /> }
)}
); }