import React from 'react'; import { NavLink, Outlet } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { usePluginStore } from '@/store/pluginStore'; import * as LucideIcons from 'lucide-react'; export function SettingsPage() { const { t } = useTranslation(); const pluginSettingsPages = usePluginStore(s => s.getAllSettingsPages()); const hardcodedNavItems = [ { to: '/settings/system', label: t('systemSettings.title'), icon: '\u2699\ufe0f' }, { to: '/settings/roles', label: t('settings.roles'), icon: '\ud83d\udd11' }, { to: '/settings/users', label: t('settings.users'), icon: '\ud83d\udc65' }, { to: '/settings/groups', label: t('settings.groups', 'Gruppen'), icon: '\ud83d\udc65\ud83d\udcac' }, { to: '/settings/plugins', label: t('settings.plugins'), icon: '\ud83e\udde9' }, { to: '/settings/currencies', label: t('currencies.title'), icon: '\ud83d\udcb0' }, { to: '/settings/taxes', label: t('taxes.title'), icon: '\ud83d\udccb' }, { to: '/settings/sequences', label: t('sequences.title'), icon: '\ud83d\udd22' }, { to: '/settings/mail', label: t('mail.settings'), icon: '\ud83d\udce7' }, { to: '/settings/ai', label: t('nav.aiAssistant'), icon: '\ud83e\udde0' }, { to: '/settings/ai-proactive', label: 'Proaktive KI', icon: '\ud83e\udd16' }, { to: '/settings/notifications', label: t('settings.notifications'), icon: '\ud83d\udd14' }, { to: '/settings/theme', label: t('settings.theme', 'Theme'), icon: '\ud83c\udfa8' }, ]; const existingPaths = new Set(hardcodedNavItems.map(item => item.to)); const pluginNavItems = pluginSettingsPages .filter(p => !existingPaths.has(`/settings/${p.path}`)) .map(p => ({ to: `/settings/${p.path}`, label: t(p.label_key, p.label), icon: (() => { const Icon = (LucideIcons as any)[p.icon]; return Icon ? React.createElement(Icon, { className: 'w-4 h-4' }) : '\ud83d\udce6'; })(), })); const navItems = [...hardcodedNavItems, ...pluginNavItems]; return (