import { useParams, Link } from "react-router-dom"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table"; import { useBatches, useStudents, useTimetable } from "@/hooks/queries"; import { ArrowLeft, Users, Calendar, BookOpen } from "lucide-react"; export default function AdminBatchDetail() { const { id } = useParams(); const batchId = id ? Number(id) : NaN; const { data: batchesData, isLoading: lb } = useBatches(); const { data: studentsData, isLoading: ls } = useStudents( Number.isFinite(batchId) ? { batch_id: batchId, size: 500 } : { size: 500 }, ); const { data: timetableData, isLoading: ltt } = useTimetable(); const batches = batchesData?.items ?? []; const students = studentsData?.items ?? []; const timetableSessions = Array.isArray(timetableData) ? timetableData : []; if (lb || ls || ltt) return
{batch.course_name} · {batch.teacher_name}
{batch.student_count}/{batch.capacity}
Students
{batch.schedule}
Schedule
{batch.start_date} — {batch.end_date}
Duration
Status
No sessions scheduled.
) : batchSessions.map(s => ({s.day} {s.start_time}–{s.end_time}
{s.room}