From 79d124e18830870d3df8b14ed72dbf8feacd3bc0 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Tue, 30 Jun 2026 20:45:02 +0000 Subject: [PATCH] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/_authenticated/admin.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/routes/_authenticated/admin.tsx b/src/routes/_authenticated/admin.tsx index c04902c..73f2f41 100644 --- a/src/routes/_authenticated/admin.tsx +++ b/src/routes/_authenticated/admin.tsx @@ -162,13 +162,22 @@ function LinksTab() { const { data: links } = useQuery({ queryKey: ["admin-links"], - queryFn: async () => (await supabase.from("parent_students").select("id, profiles!parent_students_parent_id_fkey(full_name, email), students(first_name, last_name)")).data ?? [], + queryFn: async () => { + const { data } = await supabase.from("parent_students").select("id, parent_id, students(first_name, last_name)"); + const ids = (data ?? []).map((d) => d.parent_id); + const { data: profs } = ids.length ? await supabase.from("profiles").select("id, full_name, email").in("id", ids) : { data: [] }; + const map = Object.fromEntries((profs ?? []).map((p) => [p.id, p])); + return (data ?? []).map((d) => ({ ...d, profile: map[d.parent_id] })); + }, }); const { data: parents } = useQuery({ queryKey: ["all-parents"], queryFn: async () => { - const { data } = await supabase.from("user_roles").select("profiles(id, full_name, email)").eq("role", "parent"); - return (data ?? []).map((d) => d.profiles as { id: string; full_name: string; email: string }).filter(Boolean); + const { data: r } = await supabase.from("user_roles").select("user_id").eq("role", "parent"); + const ids = (r ?? []).map((x) => x.user_id); + if (ids.length === 0) return []; + const { data } = await supabase.from("profiles").select("id, full_name, email").in("id", ids); + return data ?? []; }, }); const { data: students } = useQuery({