"use client" import { useState, useMemo } from "react" import type { Ticket, TicketStatus } from "@/lib/types" import { StatusBadge } from "./status-badge" import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select" import { ArrowUpDown, ArrowDown, ArrowUp, Calendar, MapPin, FileText } from "lucide-react" import { Button } from "@/components/ui/button" interface TicketTableProps { tickets: Ticket[] showStatusUpdate?: boolean onStatusUpdate?: (ticketId: number, status: TicketStatus) => void } type SortDirection = "asc" | "desc" export function TicketTable({ tickets, showStatusUpdate = false, onStatusUpdate }: TicketTableProps) { const [sortDirection, setSortDirection] = useState("desc") const sortedTickets = useMemo(() => { return [...tickets].sort((a, b) => { const dateA = new Date(a.createdAt).getTime() const dateB = new Date(b.createdAt).getTime() return sortDirection === "desc" ? dateB - dateA : dateA - dateB }) }, [tickets, sortDirection]) const toggleSort = () => { setSortDirection((prev) => (prev === "desc" ? "asc" : "desc")) } const formatDate = (dateString: string) => { return new Date(dateString).toLocaleDateString("de-DE", { year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit" }) } if (tickets.length === 0) { return (

No tickets found

There are no tickets to display at this time.

) } return (
Room
Title Description Status
{sortedTickets.map((ticket) => ( {ticket.room.name} {ticket.title}

{ticket.description}

{formatDate(ticket.createdAt)} {showStatusUpdate && onStatusUpdate ? ( ) : ( )}
))}
) }