import { useState } from 'react' import { RepairStatusBar } from './repair-status-bar' import { RepairQueuePanel } from './repair-queue-panel' import { RepairDetailPanel } from './repair-detail-panel' import { RepairIntakeForm } from './repair-intake-form' interface RepairDeskViewProps { canEdit: boolean } export function RepairDeskView({ canEdit }: RepairDeskViewProps) { const [selectedTicketId, setSelectedTicketId] = useState(null) const [intakeMode, setIntakeMode] = useState(false) const [statusFilter, setStatusFilter] = useState(null) const [activeFilterLabel, setActiveFilterLabel] = useState(null) function handleFilterChange(statuses: string[] | null) { setStatusFilter(statuses) // Track which group label is active for the status bar highlight if (!statuses) { setActiveFilterLabel(null) } else { // Map statuses back to group label const groups: Record = { new: 'New', in_transit: 'New', intake: 'New', diagnosing: 'Diagnosing', pending_approval: 'Diagnosing', approved: 'In Progress', in_progress: 'In Progress', pending_parts: 'In Progress', ready: 'Ready', } setActiveFilterLabel(groups[statuses[0]] ?? null) } } if (intakeMode) { return (
{ setIntakeMode(false) setSelectedTicketId(ticketId) }} onCancel={() => setIntakeMode(false)} />
) } return (
setIntakeMode(true)} statusFilter={statusFilter} />
) }