Changes
Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
co-authored by
renee-png
parent
aefe30bcfb
commit
0fee6b6ecd
@@ -40,19 +40,26 @@ function CaseDetail() {
|
||||
const [data, setData] = useState<any>(null);
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [users, setUsers] = useState<any[]>([]);
|
||||
const [clients, setClients] = useState<any[]>([]);
|
||||
const [reassignOpen, setReassignOpen] = useState(false);
|
||||
const [clientSearch, setClientSearch] = useState("");
|
||||
const [selectedClientId, setSelectedClientId] = useState<string>("");
|
||||
const [reassigning, setReassigning] = useState(false);
|
||||
|
||||
const load = useCallback(async () => {
|
||||
const [{ data: c, error }, { data: us }] = await Promise.all([
|
||||
const [{ data: c, error }, { data: us }, { data: cl }] = await Promise.all([
|
||||
supabase
|
||||
.from("cases")
|
||||
.select("*, client:clients(id, name, client_type, annual_interest_rate), assignee:profiles!cases_assigned_attorney_id_fkey(id, full_name, email)")
|
||||
.eq("id", caseId)
|
||||
.maybeSingle(),
|
||||
supabase.from("profiles").select("id, full_name, email"),
|
||||
supabase.from("clients").select("id, name, client_type").is("archived_at", null).order("name"),
|
||||
]);
|
||||
if (error) toast.error("Failed to load case", { description: error.message });
|
||||
setData(c);
|
||||
setUsers(us ?? []);
|
||||
setClients(cl ?? []);
|
||||
setLoading(false);
|
||||
}, [caseId]);
|
||||
|
||||
@@ -78,6 +85,30 @@ function CaseDetail() {
|
||||
else { toast.success("Assignee updated"); load(); }
|
||||
};
|
||||
|
||||
const filteredClients = useMemo(() => {
|
||||
const q = clientSearch.trim().toLowerCase();
|
||||
if (!q) return clients.slice(0, 50);
|
||||
return clients.filter((c) => c.name.toLowerCase().includes(q)).slice(0, 50);
|
||||
}, [clients, clientSearch]);
|
||||
|
||||
const reassignClient = async () => {
|
||||
if (!selectedClientId || selectedClientId === data.client?.id) {
|
||||
setReassignOpen(false);
|
||||
return;
|
||||
}
|
||||
setReassigning(true);
|
||||
const { error } = await supabase.from("cases").update({ client_id: selectedClientId }).eq("id", caseId);
|
||||
setReassigning(false);
|
||||
if (error) toast.error("Could not reassign", { description: error.message });
|
||||
else {
|
||||
toast.success("Case reassigned to new client");
|
||||
setReassignOpen(false);
|
||||
setClientSearch("");
|
||||
setSelectedClientId("");
|
||||
load();
|
||||
}
|
||||
};
|
||||
|
||||
if (loading) return <PageContainer><p className="text-muted-foreground">Loading…</p></PageContainer>;
|
||||
if (!data) {
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user