64 lines
2.6 KiB
JavaScript
64 lines
2.6 KiB
JavaScript
const NAV_SECTIONS = [
|
|
{
|
|
label: 'CRM',
|
|
items: [
|
|
{ href: '/', icon: 'layout-dashboard', label: 'Dashboard', match: /^\/(\?.*)?$/ },
|
|
{ href: '/clients', icon: 'users', label: 'Cliënten', match: /^\/clients/ },
|
|
{ href: '/engagements', icon: 'briefcase', label: 'Engagements', match: /^\/engagements/ },
|
|
{ href: '/tasks', icon: 'check-circle', label: 'Taken', match: /^\/tasks/ },
|
|
{ href: '/calendar', icon: 'calendar', label: 'Agenda', match: /^\/calendar/ },
|
|
{ href: '/email', icon: 'mail', label: 'Email', match: /^\/email/ }
|
|
]
|
|
},
|
|
{
|
|
label: 'Delivery',
|
|
items: [
|
|
{ href: '/consulting', icon: 'clipboard-list', label: 'Framework', match: /^\/consulting/ },
|
|
{ href: '/assess', icon: 'file-search', label: 'Assessments', match: /^\/assess/ },
|
|
{ href: '/projects', icon: 'folder-kanban', label: 'Projecten', match: /^\/projects/ },
|
|
{ href: '/time', icon: 'clock', label: 'Uren', match: /^\/time/ },
|
|
{ href: '/invoices', icon: 'receipt', label: 'Facturen', match: /^\/invoices/ },
|
|
{ href: '/reports', icon: 'bar-chart-3', label: 'Rapporten', match: /^\/reports/ }
|
|
]
|
|
},
|
|
{
|
|
label: 'Data Engineering',
|
|
items: [
|
|
{ href: '/quality', icon: 'shield-check', label: 'Data Quality', match: /^\/quality/ },
|
|
{ href: '/architecture', icon: 'network', label: 'Architecture', match: /^\/architecture/ },
|
|
{ href: '/architecture/designer', icon: 'pen-tool', label: 'Pro Designer', match: /^\/architecture\/designer/ },
|
|
{ href: '/market', icon: 'radar', label: 'Market Intel', match: /^\/market/ },
|
|
{ href: '/sizing', icon: 'cpu', label: 'Sizing', match: /^\/sizing/ }
|
|
]
|
|
},
|
|
{
|
|
label: 'Infrastructure',
|
|
items: [
|
|
{ href: '/racks', icon: 'server', label: 'Racks', match: /^\/racks/ },
|
|
{ href: '/networking', icon: 'share-2', label: 'Netwerk', match: /^\/networking/ },
|
|
{ href: '/infrastructure', icon: 'building-2', label: 'Infra', match: /^\/infrastructure/ }
|
|
]
|
|
},
|
|
{
|
|
label: 'Platform',
|
|
items: [
|
|
{ href: '/finance', icon: 'wallet', label: 'Finance', match: /^\/finance/ },
|
|
{ href: '/ai', icon: 'sparkles', label: 'AI Providers', match: /^\/ai/ },
|
|
{ href: '/integrations', icon: 'plug', label: 'Integraties', match: /^\/integrations/ },
|
|
{ href: '/settings', icon: 'settings', label: 'Instellingen', match: /^\/settings/ }
|
|
]
|
|
}
|
|
];
|
|
|
|
function getNavSections(activePath) {
|
|
return NAV_SECTIONS.map(section => ({
|
|
...section,
|
|
items: section.items.map(item => ({
|
|
...item,
|
|
active: item.match.test(activePath || '/')
|
|
}))
|
|
}));
|
|
}
|
|
|
|
module.exports = { NAV_SECTIONS, getNavSections };
|