import React, { useState } from 'react'; import { NavLink, Outlet, useParams } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { useUIStore } from '@/store/uiStore'; import { ChevronRight, ChevronDown, BookOpen, Users, Calendar, Mail, FolderOpen, Settings, Shield, Zap, Bot, ArrowLeft, Code } from 'lucide-react'; interface HelpNode { title: string; path?: string; icon?: React.ReactNode; children?: HelpNode[]; } const HELP_TREE: HelpNode[] = [ { title: 'Erste Schritte', icon: , children: [ { title: 'Willkommen', path: '/help/welcome' }, { title: 'Login & Anmeldung', path: '/help/login' }, { title: 'Navigation', path: '/help/navigation' }, ], }, { title: 'Kontakte', icon: , children: [ { title: 'Kontakte verwalten', path: '/help/contacts' }, { title: 'Kontaktpersonen', path: '/help/contact-persons' }, { title: 'Import & Export', path: '/help/import-export' }, { title: 'Duplikate finden', path: '/help/dedup' }, ], }, { title: 'Kalender', icon: , children: [ { title: 'Termine erstellen', path: '/help/calendar' }, { title: 'Kanban-Ansicht', path: '/help/calendar-kanban' }, ], }, { title: 'E-Mail', icon: , children: [ { title: 'Postfach einrichten', path: '/help/mail-setup' }, { title: 'Mails verwalten', path: '/help/mail-usage' }, { title: 'Signaturen & Vorlagen', path: '/help/mail-signatures' }, ], }, { title: 'Dateien (DMS)', icon: , children: [ { title: 'Dateien hochladen', path: '/help/dms-upload' }, { title: 'Ordner & Berechtigungen', path: '/help/dms-folders' }, ], }, { title: 'Einstellungen', icon: , children: [ { title: 'Stammdaten', path: '/help/settings-stammdaten' }, { title: 'Benutzerverwaltung', path: '/help/settings-users' }, { title: 'Rollen & Rechte', path: '/help/settings-roles' }, { title: 'Plugins', path: '/help/settings-plugins' }, ], }, { title: 'Sicherheit', icon: , children: [ { title: 'Passwörter', path: '/help/security-passwords' }, { title: 'Datenschutz (DSGVO)', path: '/help/security-gdpr' }, ], }, { title: 'Entwicklung', icon: , children: [ { title: 'API Dokumentation', path: '/help/api-docs' }, ], }, ]; function TreeItem({ node, depth }: { node: HelpNode; depth: number }) { const [expanded, setExpanded] = useState(depth < 1); const hasChildren = node.children && node.children.length > 0; const paddingLeft = depth * 16 + 12; if (hasChildren) { return (
{expanded && (
{node.children!.map((child) => ( ))}
)}
); } return ( `flex items-center gap-2 px-3 py-2 rounded-lg text-sm transition-colors min-h-touch ${ isActive ? 'bg-primary-100 text-primary-700 font-medium' : 'text-secondary-600 hover:bg-secondary-100 hover:text-secondary-900' }` } style={{ paddingLeft: paddingLeft + 20 }} > {node.icon} {node.title} ); } export function HelpPage() { const { t } = useTranslation(); const sidebarOpen = useUIStore((state) => state.sidebarOpen); return (
); }