'use client'; /** * StatusWorkflow Component * * Interactive status selector with workflow transitions. * * @module features/issues/components/StatusWorkflow */ import { CircleDot, PlayCircle, Clock, AlertCircle, CheckCircle2, XCircle, } from 'lucide-react'; import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/card'; import { cn } from '@/lib/utils'; import type { IssueStatus } from '../types'; import { STATUS_ORDER, STATUS_CONFIG } from '../constants'; const STATUS_ICONS = { open: CircleDot, in_progress: PlayCircle, in_review: Clock, blocked: AlertCircle, closed: XCircle, } as const; interface StatusWorkflowProps { currentStatus: IssueStatus; onStatusChange: (status: IssueStatus) => void; disabled?: boolean; className?: string; } export function StatusWorkflow({ currentStatus, onStatusChange, disabled = false, className, }: StatusWorkflowProps) { return ( Status Workflow
{STATUS_ORDER.map((status) => { const config = STATUS_CONFIG[status]; const Icon = STATUS_ICONS[status]; const isActive = currentStatus === status; return ( ); })}
); }