"use client"; import { useState } from "react"; import { toast } from "sonner"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Button } from "@/components/ui/button"; import { STATUS_LABELS, STATUS_ICONS } from "@/components/cases/status-badge"; import { useUpdateCase } from "@/lib/api/cases"; import { CASE_STATUSES, type CaseStatus } from "@/lib/api/case-status"; /* * Dropdown for manually overriding the case status — skip a step * or revert to an earlier stage. Calls PUT /api/cases/:caseNumber * with { status: newValue }. The option list is the SSoT lifecycle. */ const ALL_STATUSES: readonly CaseStatus[] = CASE_STATUSES; export function StatusChanger({ caseNumber, currentStatus, }: { caseNumber: string; currentStatus?: CaseStatus; }) { const [selected, setSelected] = useState(currentStatus ?? ""); const mutate = useUpdateCase(caseNumber); const handleSave = async () => { if (!selected || selected === currentStatus) return; try { await mutate.mutateAsync({ status: selected }); toast.success(`הסטטוס עודכן ל${STATUS_LABELS[selected]}`); } catch (e) { toast.error(e instanceof Error ? e.message : "שגיאה בעדכון הסטטוס"); } }; return (
); }