import Spinner from '@app/assets/spinner.svg'; import { CheckCircleIcon } from '@heroicons/react/20/solid'; import { BellIcon, ClockIcon, MinusSmallIcon } from '@heroicons/react/24/solid'; import { MediaStatus } from '@server/constants/media'; interface StatusBadgeMiniProps { status: MediaStatus; is4k?: boolean; inProgress?: boolean; // Should the badge shrink on mobile to a smaller size? (TitleCard) shrink?: boolean; } const StatusBadgeMini = ({ status, is4k = false, inProgress = false, shrink = false, }: StatusBadgeMiniProps) => { const badgeStyle = [ `rounded-full bg-opacity-80 shadow-md ${ shrink ? 'w-4 sm:w-5 border p-0' : 'w-5 ring-1 p-0.5' }`, ]; let indicatorIcon: React.ReactNode; switch (status) { case MediaStatus.PROCESSING: badgeStyle.push( 'bg-indigo-500 border-indigo-400 ring-indigo-400 text-indigo-100' ); indicatorIcon = ; break; case MediaStatus.AVAILABLE: badgeStyle.push( 'bg-green-500 border-green-400 ring-green-400 text-green-100' ); indicatorIcon = ; break; case MediaStatus.PENDING: badgeStyle.push( 'bg-yellow-500 border-yellow-400 ring-yellow-400 text-yellow-100' ); indicatorIcon = ; break; case MediaStatus.PARTIALLY_AVAILABLE: badgeStyle.push( 'bg-green-500 border-green-400 ring-green-400 text-green-100' ); indicatorIcon = ; break; } if (inProgress) { indicatorIcon = ; } return (
{indicatorIcon}
{is4k && 4K}
); }; export default StatusBadgeMini;