From c51314771f189f3e2bd06381ab4123a002497344 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 17:05:16 +0000
Subject: [PATCH] Changes
Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
---
src/components/forms/client-case-picker.tsx | 65 ++++++++-------------
src/components/forms/form-pickers.tsx | 50 +++++-----------
2 files changed, 39 insertions(+), 76 deletions(-)
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 ?? ""}` };
+ })}
+ />
)}