Fixed Expenses tab 400 join
X-Lovable-Edit-ID: edt-2db1ba69-73b6-42c9-bd54-750a1234b75e Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
@@ -49,12 +49,32 @@ export function CaseExpensesTab({ caseId }: { caseId: string }) {
|
||||
const [showImport, setShowImport] = useState(false);
|
||||
|
||||
const load = async () => {
|
||||
const { data } = await supabase
|
||||
const { data, error } = await supabase
|
||||
.from("expenses")
|
||||
.select("*, user:profiles!expenses_user_id_fkey(full_name, email)")
|
||||
.select("*")
|
||||
.eq("case_id", caseId)
|
||||
.order("expense_date", { ascending: false });
|
||||
setItems(data ?? []);
|
||||
if (error) {
|
||||
toast.error(error.message);
|
||||
setItems([]);
|
||||
return;
|
||||
}
|
||||
|
||||
const rows = data ?? [];
|
||||
const userIds = [...new Set(rows.map((item) => item.user_id).filter(Boolean))];
|
||||
|
||||
if (userIds.length === 0) {
|
||||
setItems(rows);
|
||||
return;
|
||||
}
|
||||
|
||||
const { data: profiles } = await supabase
|
||||
.from("profiles")
|
||||
.select("id, full_name, email")
|
||||
.in("id", userIds);
|
||||
|
||||
const profileMap = new Map((profiles ?? []).map((profile) => [profile.id, profile]));
|
||||
setItems(rows.map((item) => ({ ...item, user: profileMap.get(item.user_id) ?? null })));
|
||||
};
|
||||
|
||||
useEffect(() => { load(); }, [caseId]);
|
||||
|
||||
Reference in New Issue
Block a user