From e59b1f22e455a464dbde05d862709b22e2a33faa Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sun, 19 Apr 2026 20:07:01 +0000 Subject: [PATCH] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/cases.$caseId.tsx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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);