import { Link, useLocation } from 'react-router-dom' import type { ReactNode } from 'react' import { ApartmentOutlined, ClockCircleOutlined, CloudServerOutlined, ClusterOutlined, CrownOutlined, DashboardOutlined, DatabaseOutlined, FireOutlined, GlobalOutlined, NodeIndexOutlined, SafetyCertificateOutlined, SettingOutlined, ThunderboltOutlined, } from '@ant-design/icons' import { useTranslation } from 'react-i18next' interface SidebarProps { isOpen: boolean onClose?: () => void } interface NavItem { path: string labelKey: string icon: ReactNode } interface NavSection { labelKey: string items: NavItem[] } const NAV: NavSection[] = [ { labelKey: 'nav.section.overview', items: [ { path: '/dashboard', labelKey: 'nav.dashboard', icon: }, ], }, { labelKey: 'nav.section.routing', items: [ { path: '/domains', labelKey: 'nav.domains', icon: }, { path: '/backends', labelKey: 'nav.backends', icon: }, ], }, { labelKey: 'nav.section.network', items: [ { path: '/networks', labelKey: 'nav.networks', icon: }, { path: '/ip-addresses', labelKey: 'nav.ipAddresses', icon: }, { path: '/ssl', labelKey: 'nav.ssl', icon: }, { path: '/dns', labelKey: 'nav.dns', icon: }, { path: '/ntp', labelKey: 'nav.ntp', icon: }, ], }, { labelKey: 'nav.section.security', items: [ { path: '/firewall', labelKey: 'nav.firewall', icon: }, { path: '/vpn/wireguard', labelKey: 'nav.wireguard', icon: }, { path: '/forward-proxy', labelKey: 'nav.forwardProxy', icon: }, ], }, { labelKey: 'nav.section.system', items: [ { path: '/cluster', labelKey: 'nav.cluster', icon: }, { path: '/license', labelKey: 'nav.license', icon: }, { path: '/settings', labelKey: 'nav.settings', icon: }, ], }, ] const VERSION = '1.0.59' // Sidebar-Pattern 1:1 aus netcell-webpanel (enconf) übernommen: // -