Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-04-17 00:26:53 +00:00
co-authored by renee-png
parent 28ad65edc6
commit 54b2610e9a
2 changed files with 42 additions and 21 deletions
+36 -21
View File
@@ -18,6 +18,7 @@ import { CaseInvoicesTab } from "@/components/cases/invoices-tab";
import { CaseLitigationTab } from "@/components/cases/litigation-tab";
import { toast } from "sonner";
import { useAuth } from "@/lib/auth";
import { StartTimerButton } from "@/components/timer/start-timer-button";
export const Route = createFileRoute("/cases/$caseId")({
component: () => (
@@ -105,27 +106,41 @@ function CaseDetail() {
{" · "}{data.practice_area || "—"}{" · "}opened {formatDate(data.opened_at)}
</p>
</div>
{canManage && (
<div className="flex flex-wrap gap-2">
<Select value={data.assigned_attorney_id ?? ""} onValueChange={updateAssignee}>
<SelectTrigger className="w-[200px]"><SelectValue placeholder="Assign attorney" /></SelectTrigger>
<SelectContent>
{users.map((u) => <SelectItem key={u.id} value={u.id}>{u.full_name || u.email}</SelectItem>)}
</SelectContent>
</Select>
<Select value={data.status} onValueChange={updateStatus}>
<SelectTrigger className="w-[160px]"><SelectValue /></SelectTrigger>
<SelectContent>
<SelectItem value="intake">Intake</SelectItem>
<SelectItem value="active">Active</SelectItem>
<SelectItem value="on_hold">On hold</SelectItem>
<SelectItem value="closed_won">Closed — won</SelectItem>
<SelectItem value="closed_lost">Closed — lost</SelectItem>
<SelectItem value="closed">Closed</SelectItem>
</SelectContent>
</Select>
</div>
)}
<div className="flex flex-wrap gap-2">
<StartTimerButton
size="sm"
variant="outline"
target={{
clientId: data.client.id,
clientName: data.client.name,
caseId: data.id,
caseNumber: data.case_number,
caseTitle: data.title,
defaultHourlyRate: data.default_hourly_rate,
}}
/>
{canManage && (
<>
<Select value={data.assigned_attorney_id ?? ""} onValueChange={updateAssignee}>
<SelectTrigger className="w-[200px]"><SelectValue placeholder="Assign attorney" /></SelectTrigger>
<SelectContent>
{users.map((u) => <SelectItem key={u.id} value={u.id}>{u.full_name || u.email}</SelectItem>)}
</SelectContent>
</Select>
<Select value={data.status} onValueChange={updateStatus}>
<SelectTrigger className="w-[160px]"><SelectValue /></SelectTrigger>
<SelectContent>
<SelectItem value="intake">Intake</SelectItem>
<SelectItem value="active">Active</SelectItem>
<SelectItem value="on_hold">On hold</SelectItem>
<SelectItem value="closed_won">Closed — won</SelectItem>
<SelectItem value="closed_lost">Closed — lost</SelectItem>
<SelectItem value="closed">Closed</SelectItem>
</SelectContent>
</Select>
</>
)}
</div>
</div>
{data.description && (