import { Link, Navigate } from 'react-router-dom'; import { useAuth } from '../../auth/AuthContext'; import { useCrmSettings, type CrmModuleKey, } from './CrmSettingsContext'; import styles from './CrmSettingsPage.module.css'; // ============================================================ // Module definitions (UI-Beschreibung je Modul) // ============================================================ interface ModuleDef { key: CrmModuleKey; name: string; description: string; icon: React.ReactNode; } const iconProps = { width: 18, height: 18, viewBox: '0 0 16 16', fill: 'none', stroke: 'currentColor', strokeWidth: 1.5, strokeLinecap: 'round' as const, strokeLinejoin: 'round' as const, }; const MODULES: ModuleDef[] = [ { key: 'contacts', name: 'Kontakte', description: 'Kontaktverwaltung (Personen & Organisationen)', icon: ( ), }, { key: 'companies', name: 'Unternehmen', description: 'Unternehmensverwaltung mit Verknüpfung zu Kontakten & Vorgängen', icon: ( ), }, { key: 'deals', name: 'Vorgänge', description: 'Vorgänge & Sales-Pipeline-Tracking', icon: ( ), }, { key: 'pipelines', name: 'Pipelines', description: 'Pipeline-Konfiguration & Stufen-Management', icon: ( ), }, { key: 'lexware', name: 'Lexware Office', description: 'Lexware-Kontaktverknüpfung & Belegansicht auf Detail-Seiten', icon: ( ), }, ]; // ============================================================ // Page Component // ============================================================ export function CrmSettingsPage() { const { user } = useAuth(); const { settings, toggleModule } = useCrmSettings(); // Zugriffskontrolle: nur Admins if ( user?.role !== 'PLATFORM_ADMIN' && user?.role !== 'TENANT_ADMIN' ) { return ; } const anyDisabled = Object.values(settings.modules).some( (m) => !m.enabled, ); return (
{/* Zurück */} Zurück zum Dashboard {/* Header */}

CRM Einstellungen

{/* Module-Card */}

Module

Aktiviere oder deaktiviere einzelne CRM-Module. Deaktivierte Module werden aus dem Menü ausgeblendet.

{MODULES.map((mod) => { const enabled = settings.modules[mod.key]?.enabled ?? true; return (
{mod.icon}
{mod.name} {mod.description}
); })}
{anyDisabled && (
Deaktivierte Module werden aus dem Menü ausgeblendet. Bestehende Daten bleiben erhalten und sind nach Reaktivierung wieder verfügbar.
)}
{/* Lexware Synchronisation — nur wenn Modul aktiv */} {settings.modules.lexware?.enabled && (

LX Lexware Office Synchronisation

Kontakte aus Lexware Office importieren oder CRM-Daten nach Lexware exportieren.

Import / Export öffnen
)} {/* Platzhalter für zukünftige Einstellungen */}

Weitere Einstellungen

Zusätzliche Konfigurationsmöglichkeiten werden in zukünftigen Versionen verfügbar sein.

); }