corenthin-lebreton 28aa3b0e10 initial project
2026-02-26 20:10:14 +01:00

44 lines
1.2 KiB
TypeScript

/* eslint-disable @typescript-eslint/no-explicit-any */
import { createClient } from '@/lib/supabase/server'
import QuizzesClient from './QuizzesClient'
export default async function QuizzesPage() {
const supabase = await createClient()
const db = supabase as any
const { data: { user } } = await supabase.auth.getUser()
const { data: categories } = await db
.from('categories')
.select(`id, name, description, subchapters(id, name, quizzes(id, title, updated_at))`)
.order('name')
const { count: totalQuizzes } = await db
.from('quizzes')
.select('id', { count: 'exact', head: true })
.eq('author_id', user!.id)
const { data: sessionIds } = await db
.from('sessions')
.select('id')
.eq('trainer_id', user!.id)
const ids = (sessionIds ?? []).map((s: any) => s.id)
const { count: totalStudents } = ids.length > 0
? await db
.from('student_participations')
.select('id', { count: 'exact', head: true })
.in('session_id', ids)
: { count: 0 }
return (
<QuizzesClient
initialCategories={categories ?? []}
stats={{
totalQuizzes: totalQuizzes ?? 0,
totalCategories: categories?.length ?? 0,
activeStudents: totalStudents ?? 0,
}}
/>
)
}