"use client" import { useMemo } from "react" import { useAuth } from "@/lib/auth-context" import { TicketTable } from "@/components/tickets/ticket-table" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Badge } from "@/components/ui/badge" import { Building2, Ticket, Clock, CheckCircle2, AlertCircle } from "lucide-react" export function SupervisorDashboard() { const { user, tickets, updateTicketStatus } = useAuth() // user.supervisedRooms is Room[] const supervisedRooms = user?.supervisedRooms || [] const roomTickets = useMemo(() => { if (!supervisedRooms.length) return [] const roomIds = supervisedRooms.map(r => r.id) return tickets.filter((t) => roomIds.includes(t.room.id)) }, [tickets, supervisedRooms]) const stats = useMemo(() => { const open = roomTickets.filter((t) => t.status === "OPEN").length const inProgress = roomTickets.filter((t) => t.status === "IN_PROGRESS").length const done = roomTickets.filter((t) => t.status === "CLOSED").length return { open, inProgress, done, total: roomTickets.length } }, [roomTickets]) const roomStats = useMemo(() => { return supervisedRooms.map((room) => { const roomTicketsList = roomTickets.filter((t) => t.room.id === room.id) return { room: room.name, total: roomTicketsList.length, open: roomTicketsList.filter((t) => t.status === "OPEN").length, inProgress: roomTicketsList.filter((t) => t.status === "IN_PROGRESS").length, done: roomTicketsList.filter((t) => t.status === "CLOSED").length, } }) }, [supervisedRooms, roomTickets]) return (
Verwalten Sie Tickets für Ihre Räume