diff --git a/src/routes/_authenticated/admin.tsx b/src/routes/_authenticated/admin.tsx index 8170aff..6b413b9 100644 --- a/src/routes/_authenticated/admin.tsx +++ b/src/routes/_authenticated/admin.tsx @@ -100,7 +100,13 @@ function ClassesTab() { const { data: classes } = useQuery({ queryKey: ["admin-classes"], - queryFn: async () => (await supabase.from("classes").select("*, profiles!classes_teacher_id_fkey(full_name)").order("name")).data ?? [], + queryFn: async () => { + const { data } = await supabase.from("classes").select("*").order("name"); + const tids = Array.from(new Set((data ?? []).map((c) => c.teacher_id).filter(Boolean))) as string[]; + const { data: profs } = tids.length ? await supabase.from("profiles").select("id, full_name").in("id", tids) : { data: [] }; + const map = Object.fromEntries((profs ?? []).map((p) => [p.id, p.full_name])); + return (data ?? []).map((c) => ({ ...c, teacher_name: c.teacher_id ? map[c.teacher_id] : null })); + }, }); const { data: teachers } = useQuery({ queryKey: ["teachers"],