"use client" import { useMemo } from "react" import { useAuth } from "@/lib/auth-context" import { CreateTicketForm } from "@/components/tickets/create-ticket-form" import { TicketTable } from "@/components/tickets/ticket-table" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Ticket, Clock, CheckCircle2, AlertCircle } from "lucide-react" export function TeacherDashboard() { const { user, tickets } = useAuth() const myTickets = useMemo(() => { // Filter by own email or ID. The backend returns all tickets for RAUMBETREUER? // Wait, backend logic: // If LEHRKRAFT (ROLE_TEACHER): /tickets returns all tickets created by this user. // So `tickets` in context should already be "my tickets" if I am a teacher. // But let's be safe and filter if the API returns more than expected or just use all. // Actually, AuthContext fetches `/tickets`. // TeacherController: `getTickets` -> `ticketService.getTickets(user)`. // TicketService: if teacher, `ticketRepository.findByOwner(user)`. // So yes, `tickets` contains only my tickets. return tickets }, [tickets]) const stats = useMemo(() => { const open = myTickets.filter((t) => t.status === "OPEN").length const inProgress = myTickets.filter((t) => t.status === "IN_PROGRESS").length const done = myTickets.filter((t) => t.status === "CLOSED").length return { open, inProgress, done, total: myTickets.length } }, [myTickets]) return (

Lehrkraft Dashboard

Erstellen und verfolgen Sie Ihre IT-Support-Tickets

Tickets Gesamt
{stats.total}
Offen
{stats.open}
In Bearbeitung
{stats.inProgress}
Erledigt
{stats.done}
Meine Tickets Übersicht Ihrer gemeldeten Probleme
) }