import { CreditCard, LayoutDashboard, Settings, Users, Database, UserCheck, GraduationCap, Hotel, Calendar, Wallet, FileText, Mail, } from 'lucide-react'; import { NavigationConfigSchema } from '@kit/ui/navigation-schema'; import featureFlagsConfig from '~/config/feature-flags.config'; import pathsConfig from '~/config/paths.config'; const iconClasses = 'w-4'; const getRoutes = (account: string) => [ { label: 'common.routes.application', children: [ { label: 'common.routes.dashboard', path: pathsConfig.app.accountHome.replace('[account]', account), Icon: , highlightMatch: `${pathsConfig.app.home}$`, }, featureFlagsConfig.enableModuleBuilder ? { label: 'common.routes.modules', path: createPath(pathsConfig.app.accountModules, account), Icon: , } : undefined, featureFlagsConfig.enableMemberManagement ? { label: 'common.routes.cmsMembers', path: createPath(pathsConfig.app.accountCmsMembers, account), Icon: , } : undefined, featureFlagsConfig.enableCourseManagement ? { label: 'common.routes.courses', path: createPath(pathsConfig.app.accountCourses, account), Icon: , } : undefined, featureFlagsConfig.enableBookingManagement ? { label: 'common.routes.bookings', path: createPath(pathsConfig.app.accountBookings, account), Icon: , } : undefined, { label: 'common.routes.events', path: createPath(`/home/[account]/events`, account), Icon: , }, featureFlagsConfig.enableSepaPayments ? { label: 'common.routes.finance', path: createPath(pathsConfig.app.accountFinance, account), Icon: , } : undefined, featureFlagsConfig.enableDocumentGeneration ? { label: 'common.routes.documents', path: createPath(pathsConfig.app.accountDocuments, account), Icon: , } : undefined, featureFlagsConfig.enableNewsletter ? { label: 'common.routes.newsletter', path: createPath(pathsConfig.app.accountNewsletter, account), Icon: , } : undefined, ].filter(Boolean), }, { label: 'common.routes.settings', collapsible: false, children: [ { label: 'common.routes.settings', path: createPath(pathsConfig.app.accountSettings, account), Icon: , }, { label: 'common.routes.members', path: createPath(pathsConfig.app.accountMembers, account), Icon: , }, featureFlagsConfig.enableTeamAccountBilling ? { label: 'common.routes.billing', path: createPath(pathsConfig.app.accountBilling, account), Icon: , } : undefined, ].filter(Boolean), }, ]; export function getTeamAccountSidebarConfig(account: string) { return NavigationConfigSchema.parse({ routes: getRoutes(account), style: process.env.NEXT_PUBLIC_TEAM_NAVIGATION_STYLE, sidebarCollapsed: process.env.NEXT_PUBLIC_TEAM_SIDEBAR_COLLAPSED, sidebarCollapsedStyle: process.env.NEXT_PUBLIC_SIDEBAR_COLLAPSIBLE_STYLE, }); } function createPath(path: string, account: string) { return path.replace('[account]', account); }