diff --git a/frontend/src/app/dashboard/tickets/page.tsx b/frontend/src/app/dashboard/tickets/page.tsx index d129060..e90151c 100644 --- a/frontend/src/app/dashboard/tickets/page.tsx +++ b/frontend/src/app/dashboard/tickets/page.tsx @@ -41,7 +41,7 @@ export default function AdminTicketsPage() { const [deleteId, setDeleteId] = useState(null) const [createOpen, setCreateOpen] = useState(false) const [creating, setCreating] = useState(false) - const [newTicket, setNewTicket] = useState({ subject: "", message: "", priority: "medium" }) + const [newTicket, setNewTicket] = useState({ subject: "", category: "support", message: "", priority: "medium" }) // Pagination state const [currentPage, setCurrentPage] = useState(1) @@ -88,10 +88,10 @@ export default function AdminTicketsPage() { } try { setCreating(true) - await ticketsApi.create({ subject: newTicket.subject, priority: newTicket.priority }) + await ticketsApi.create({ subject: newTicket.subject, category: newTicket.category, priority: newTicket.priority, message: newTicket.message }) toast.success(t("ticketsPage.messages.created")) setCreateOpen(false) - setNewTicket({ subject: "", message: "", priority: "medium" }) + setNewTicket({ subject: "", category: "support", message: "", priority: "medium" }) fetchTickets() } catch (error) { console.error("Failed to create ticket", error) @@ -129,6 +129,17 @@ export default function AdminTicketsPage() { } } + const getCategoryBadge = (category: string) => { + const colors: Record = { + bug: "destructive", + feature: "default", + support: "secondary", + billing: "default", + other: "outline", + } + return {category} + } + // Skeleton loader component const SkeletonRow = () => ( @@ -136,6 +147,7 @@ export default function AdminTicketsPage() { + @@ -167,6 +179,7 @@ export default function AdminTicketsPage() { {t("ticketsPage.table.id")} {t("ticketsPage.table.subject")} {t("ticketsPage.table.user")} + Category {t("ticketsPage.table.status")} {t("ticketsPage.table.priority")} {t("ticketsPage.table.created")} @@ -184,7 +197,7 @@ export default function AdminTicketsPage() { ) : paginatedTickets.length === 0 ? ( - + {t("ticketsPage.noTickets")} @@ -200,6 +213,7 @@ export default function AdminTicketsPage() { {(ticket as any).userFullName || (ticket as any).userName || String(ticket.userId)} + {getCategoryBadge(ticket.category)} {getStatusBadge(ticket.status)} {getPriorityBadge(ticket.priority)} {format(new Date(ticket.createdAt), "MMM d, yyyy")} @@ -298,6 +312,24 @@ export default function AdminTicketsPage() { placeholder={t("ticketsPage.createDialog.subjectPlaceholder")} /> +
+ + +