Files
trueref/src/lib/components/admin/JobStatusBadge.svelte
2026-03-27 02:23:01 +01:00

25 lines
899 B
Svelte

<script lang="ts">
interface Props {
status: 'queued' | 'running' | 'paused' | 'cancelled' | 'done' | 'failed';
}
let { status }: Props = $props();
const statusConfig: Record<typeof status, { bg: string; text: string; label: string }> = {
queued: { bg: 'bg-blue-100', text: 'text-blue-800', label: 'Queued' },
running: { bg: 'bg-yellow-100', text: 'text-yellow-800', label: 'Running' },
paused: { bg: 'bg-orange-100', text: 'text-orange-800', label: 'Paused' },
cancelled: { bg: 'bg-gray-100', text: 'text-gray-800', label: 'Cancelled' },
done: { bg: 'bg-green-100', text: 'text-green-800', label: 'Done' },
failed: { bg: 'bg-red-100', text: 'text-red-800', label: 'Failed' }
};
const config = $derived(statusConfig[status]);
</script>
<span
class="inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium {config.bg} {config.text}"
>
{config.label}
</span>