Files
tickte-system/src/lib/customerTabs.js
T

22 lines
1.0 KiB
JavaScript

// Reiter der Kundenansicht (rein, ohne React; unter Node testbar). „Rechnungen“ ruft die Finanzen-API des Portals auf,
// die nur Admins freigibt: für alle anderen gibt es den Reiter nicht.
const BASE_TABS = [
{ id: 'overview', label: 'Übersicht' },
{ id: 'tickets', label: 'Tickets' },
{ id: 'invoices', label: 'Rechnungen', adminOnly: true },
{ id: 'projects', label: 'Projekte' },
// Protokoll der Kundenansicht (wer wann das Portal des Kunden geöffnet oder darin etwas geändert hat): alle Mitarbeiter
{ id: 'protokoll', label: 'Protokoll' },
]
/** Reiter für Tabs: [{ id, label }]; „Rechnungen“ nur für Admins. */
export function customerTabs(isAdmin) {
return BASE_TABS.filter((t) => !t.adminOnly || isAdmin === true).map(({ id, label }) => ({ id, label }))
}
/** Der Reiter, der tatsächlich gezeigt wird: ein nicht (mehr) erlaubter oder unbekannter Reiter fällt auf „Übersicht“ zurück. */
export function resolveCustomerTab(tab, isAdmin) {
return customerTabs(isAdmin).some((t) => t.id === tab) ? tab : 'overview'
}