38 lines
1.7 KiB
TypeScript
38 lines
1.7 KiB
TypeScript
import {
|
|
LayoutDashboard,
|
|
MessagesSquare,
|
|
Users,
|
|
KanbanSquare,
|
|
ShieldAlert,
|
|
BookOpen,
|
|
BarChart3,
|
|
Cable,
|
|
UsersRound,
|
|
Settings,
|
|
type LucideIcon,
|
|
} from 'lucide-react'
|
|
import type { Permission } from './roles'
|
|
|
|
export interface NavItem {
|
|
key: string
|
|
path: string
|
|
/** i18n key */
|
|
labelKey: string
|
|
icon: LucideIcon
|
|
permission?: Permission
|
|
group: 'core' | 'intelligence' | 'admin'
|
|
}
|
|
|
|
export const NAV_ITEMS: NavItem[] = [
|
|
{ key: 'dashboard', path: '/dashboard', labelKey: 'nav.dashboard', icon: LayoutDashboard, group: 'core' },
|
|
{ key: 'inbox', path: '/inbox', labelKey: 'nav.inbox', icon: MessagesSquare, group: 'core' },
|
|
{ key: 'customers', path: '/customers', labelKey: 'nav.customers', icon: Users, permission: 'customer:view', group: 'core' },
|
|
{ key: 'opportunities', path: '/opportunities', labelKey: 'nav.opportunities', icon: KanbanSquare, permission: 'opportunity:manage', group: 'core' },
|
|
{ key: 'risks', path: '/risks', labelKey: 'nav.risks', icon: ShieldAlert, permission: 'risk:handle', group: 'core' },
|
|
{ key: 'knowledge', path: '/knowledge', labelKey: 'nav.knowledge', icon: BookOpen, permission: 'knowledge:manage', group: 'intelligence' },
|
|
{ key: 'analytics', path: '/analytics', labelKey: 'nav.analytics', icon: BarChart3, permission: 'analytics:view', group: 'intelligence' },
|
|
{ key: 'channels', path: '/channels', labelKey: 'nav.channels', icon: Cable, permission: 'channel:manage', group: 'admin' },
|
|
{ key: 'team', path: '/team', labelKey: 'nav.team', icon: UsersRound, permission: 'team:manage', group: 'admin' },
|
|
{ key: 'settings', path: '/settings', labelKey: 'nav.settings', icon: Settings, permission: 'settings:manage', group: 'admin' },
|
|
]
|