diff --git a/src/components/forms/client-case-picker.tsx b/src/components/forms/client-case-picker.tsx index 1ca4bbe..89dd0cd 100644 --- a/src/components/forms/client-case-picker.tsx +++ b/src/components/forms/client-case-picker.tsx @@ -1,12 +1,6 @@ import { useEffect, useMemo, useState } from "react"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; import { Label } from "@/components/ui/label"; +import { SearchableSelect } from "@/components/ui/searchable-select"; import { fetchClients, fetchAccessibleCases, @@ -42,56 +36,43 @@ export function ClientCasePicker({
- + placeholder="Select a client" + searchPlaceholder="Search clients…" + emptyText="No clients found." + options={clients.map((c) => ({ value: c.id, label: c.name, keywords: c.name }))} + />
- + placeholder={clientId ? "Select case" : "Pick client first"} + searchPlaceholder="Search cases…" + emptyText={clientId ? "No cases for this client." : "Pick a client first."} + options={filteredCases.map((c) => ({ + value: c.id, + label: `${c.case_number} — ${c.title}`, + keywords: `${c.case_number} ${c.title}`, + render: ( + + {c.case_number} + {c.title} + + ), + }))} + />
); diff --git a/src/components/forms/form-pickers.tsx b/src/components/forms/form-pickers.tsx index d0048d5..d62b105 100644 --- a/src/components/forms/form-pickers.tsx +++ b/src/components/forms/form-pickers.tsx @@ -1,12 +1,6 @@ import { useEffect, useState } from "react"; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select"; import { Label } from "@/components/ui/label"; +import { SearchableSelect } from "@/components/ui/searchable-select"; import { fetchClients, fetchHomeowners, @@ -46,49 +40,37 @@ export function ClientHomeownerPicker({
- + placeholder="Select a client" + searchPlaceholder="Search clients…" + emptyText="No clients found." + options={clients.map((c) => ({ value: c.id, label: c.name, keywords: c.name }))} + />
{showHomeowner && (
- + placeholder={clientId ? "Select homeowner" : "Pick client first"} + searchPlaceholder="Search homeowners…" + emptyText="No homeowners found." + options={homeowners.map((h) => { + const label = `${h.last_name}, ${h.first_name}${h.unit_number ? ` — Unit ${h.unit_number}` : ""}`; + return { value: h.id, label, keywords: `${h.first_name} ${h.last_name} ${h.unit_number ?? ""}` }; + })} + />
)}