diff --git a/src/routes/cases.$caseId.tsx b/src/routes/cases.$caseId.tsx index ab4299a..17dc95e 100644 --- a/src/routes/cases.$caseId.tsx +++ b/src/routes/cases.$caseId.tsx @@ -89,6 +89,23 @@ function CaseDetail() { else { toast.success("Assignee updated"); load(); } }; + const updateRate = async (rateInput: string) => { + const trimmed = rateInput.trim(); + const next = trimmed === "" ? null : Number(trimmed); + if (next !== null && (!Number.isFinite(next) || next < 0)) { + toast.error("Enter a valid rate (0 or higher)"); + return false; + } + const { error } = await supabase + .from("cases") + .update({ default_hourly_rate: next }) + .eq("id", caseId); + if (error) { toast.error(error.message); return false; } + toast.success(next === null ? "Case rate cleared" : `Case rate set to $${next.toFixed(2)}/hr`); + load(); + return true; + }; + const filteredClients = useMemo(() => { const q = clientSearch.trim().toLowerCase(); if (!q) return clients.slice(0, 50);