Files
Papo/public/ts/components/tickets/list.ts
Pascal Prießnitz 22caa79b54
All checks were successful
Deploy Discord Bot / deploy (push) Successful in 37s
[deploy]
2025-12-04 16:43:38 +01:00

40 lines
1.5 KiB
TypeScript

import { api } from '../../services/api.js';
import { showToast } from '../../ui/toast.js';
export async function renderTicketList(guildId: string) {
const container = document.getElementById('tickets-list');
if (!container) return;
container.innerHTML = '<p class="muted">Lade Tickets...</p>';
try {
const data: any = await api.tickets(guildId);
const tickets = data?.tickets || [];
if (!tickets.length) {
container.innerHTML = '<div class="empty-state">Keine Tickets</div>';
return;
}
const list = document.createElement('div');
list.className = 'ticket-list';
tickets.slice(0, 5).forEach((t: any) => {
const item = document.createElement('div');
item.className = 'ticket-item';
item.innerHTML = `
<div class="row" style="justify-content:space-between;">
<div>
<div style="font-weight:750;font-size:15px;">${t.title || t.id}</div>
<div class="muted">${t.user || ''}</div>
</div>
<div class="ticket-status status-${t.status || 'open'}">${t.status || 'open'}</div>
</div>
<div class="muted">${t.description || ''}</div>
`;
list.appendChild(item);
});
container.innerHTML = '<h3 class="label">Aktuelle Tickets</h3>';
container.appendChild(list);
} catch (err) {
console.error(err);
container.innerHTML = '<div class="empty-state">Tickets konnten nicht geladen werden.</div>';
showToast('Fehler beim Laden der Tickets', true);
}
}