StatusBadge.tsx

 1import { CircleDot, CircleCheck } from 'lucide-react'
 2import { cn } from '@/lib/utils'
 3import { Status } from '@/__generated__/graphql'
 4
 5interface StatusBadgeProps {
 6  status: Status
 7  className?: string
 8}
 9
10// Open / Closed status badge with icon. Used in BugDetailPage header.
11export function StatusBadge({ status, className }: StatusBadgeProps) {
12  const isOpen = status === Status.Open
13
14  return (
15    <span
16      className={cn(
17        'inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-xs font-medium',
18        isOpen
19          ? 'bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400'
20          : 'bg-purple-100 text-purple-800 dark:bg-purple-900/30 dark:text-purple-400',
21        className,
22      )}
23    >
24      {isOpen ? <CircleDot className="size-3" /> : <CircleCheck className="size-3" />}
25      {isOpen ? 'Open' : 'Closed'}
26    </span>
27  )
28}