Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-04-19 23:36:37 +00:00
co-authored by renee-png
parent 794e3c1cfc
commit a33cab379e
+15 -1
View File
@@ -140,6 +140,7 @@ export function CaseCollectionsTab({
const [collections, setCollections] = useState<any[]>([]);
const [homeowners, setHomeowners] = useState<any[]>([]);
const [contactHomeowners, setContactHomeowners] = useState<any[]>([]);
const [balances, setBalances] = useState<Record<string, number>>({});
const [loading, setLoading] = useState(true);
const [activeId, setActiveId] = useState<string | null>(null);
@@ -151,7 +152,7 @@ export function CaseCollectionsTab({
const load = async () => {
setLoading(true);
const [{ data: cols }, { data: hos }] = await Promise.all([
const [{ data: cols }, { data: hos }, { data: ccs }] = await Promise.all([
supabase
.from("collections")
.select("*, homeowner:homeowners(*)")
@@ -162,10 +163,23 @@ export function CaseCollectionsTab({
.select("*")
.eq("client_id", clientId)
.order("last_name"),
supabase
.from("case_contacts")
.select("role, contact:contacts(*)")
.eq("case_id", caseId),
]);
const list = cols ?? [];
setCollections(list);
setHomeowners(hos ?? []);
// Filter: case_contacts.role = 'homeowner' OR contact.contact_type = 'homeowner'
const hoContacts = (ccs ?? [])
.filter((cc: any) => {
const roleMatch = (cc.role || "").toLowerCase() === "homeowner";
const typeMatch = (cc.contact?.contact_type || "").toLowerCase() === "homeowner";
return cc.contact && (roleMatch || typeMatch);
})
.map((cc: any) => ({ ...cc.contact, _link_role: cc.role }));
setContactHomeowners(hoContacts);
// pull balances per collection
if (list.length) {