# LeoCRM Frontend — Vollständige Bestandsanalyse **Verzeichnis:** `/a0/usr/workdir/leocrm-fix/frontend` **Architektur-Referenz:** `architecture.md` Abschnitt 7 **Datum:** 2026-07-23 --- ## 1. Pages/Routes (27 Pages, 7.826 Zeilen) ### Vorhandene Seiten | Seite | File | Lines | Status | |-------|------|-------|--------| | Login | src/pages/Login.tsx | 92 | ✅ | | PasswordReset Request | src/pages/PasswordResetRequest.tsx | 91 | ✅ | | PasswordReset Confirm | src/pages/PasswordResetConfirm.tsx | 106 | ✅ | | Dashboard | src/pages/Dashboard.tsx | 79 | ✅ | | ContactsList | src/pages/ContactsList.tsx | 445 | ✅ | | Calendar | src/pages/Calendar.tsx | 717 | ✅ | | CalendarKanban | src/pages/CalendarKanban.tsx | 123 | ✅ | | DMS | src/pages/Dms.tsx | 731 | ✅ | | DmsTrash | src/pages/DmsTrash.tsx | 155 | ✅ | | Mail | src/pages/Mail.tsx | 978 | ✅ | | MailSettings | src/pages/MailSettings.tsx | 449 | ✅ | | AuditLog | src/pages/AuditLog.tsx | 167 | ✅ | | GlobalSearchResults | src/pages/GlobalSearchResults.tsx | 228 | ✅ | | Settings (Hub) | src/pages/Settings.tsx | 52 | ✅ | | SettingsProfile | src/pages/SettingsProfile.tsx | 181 | ✅ | | SettingsUsers | src/pages/SettingsUsers.tsx | 298 | ✅ | | SettingsRoles | src/pages/SettingsRoles.tsx | 522 | ✅ | | SettingsGroups | src/pages/SettingsGroups.tsx | 688 | ✅ | | SettingsPlugins | src/pages/SettingsPlugins.tsx | 255 | ✅ | | SettingsSystem | src/pages/SettingsSystem.tsx | 277 | ✅ | | SettingsCurrencies | src/pages/SettingsCurrencies.tsx | 142 | ✅ | | SettingsTaxes | src/pages/SettingsTaxes.tsx | 143 | ✅ | | SettingsSequences | src/pages/SettingsSequences.tsx | 138 | ✅ | | SettingsNotifications | src/pages/SettingsNotifications.tsx | 158 | ✅ | | AIAssistant | src/pages/AIAssistant.tsx | 122 | ✅ | | AISettings | src/pages/AISettings.tsx | 332 | ✅ | | ProactiveAISettings | src/pages/ProactiveAISettings.tsx | 157 | ✅ | ### Fehlende Seiten | Seite | Status | Anmerkung | |-------|--------|-----------| | Companies List | ❌ MISSING | Keine Companies.tsx, API-Hooks existieren | | Company Detail | ❌ MISSING | Keine CompanyDetail.tsx | | Contact Detail Route | ❌ MISSING | ContactDetail.tsx existiert als Komponente (372 Zeilen), aber keine Route /contacts/:id | ## 2. Component Library (12+2 Komponenten) Alle 12 geforderten UI-Komponenten vorhanden: Button, Input, Select, Modal, Toast, Table, Card, Badge, Avatar, Pagination, EmptyState, Skeleton. Zusätzlich: ConfirmDialog, ResizablePanel. ## 3. Layout - AppShell ✅, Sidebar ✅ (237 Zeilen), TopBar ✅ (146 Zeilen) - ContentArea ⚠️ Inline in AppShell - PluginToolbar ✅, AISidebar ✅ (322 Zeilen), MessageSidebar ✅ (689 Zeilen) ## 4. Plugin UI System - PluginRegistry.tsx ❌ MISSING - PluginLoader.tsx ❌ MISSING - src/plugins/ Verzeichnis ❌ MISSING - Plugin-Routes hartkodiert in routes/index.tsx ## 5. State Management - TanStack Query: 138 Aufrufe, 60+ Hooks ✅ - Zustand: 5 Stores (authStore, uiStore, commStore, pluginToolbarStore, calendarStore) ✅ ## 6. Code-Splitting - React.lazy ❌ MISSING (0 Verwendungen) - Suspense ❌ MISSING ## 7. i18n - de.json: 750 Keys ✅ - en.json: 750 Keys ✅ - Perfekt synchron ## 8. Forms - React Hook Form + Zod installiert ✅ - Nur in 3 Pages aktiv genutzt ⚠️ ## 9. Feature Modules (70 Components, 13.893 Zeilen) - ai/ (5 Komponenten) ✅ - calendar/ (12 Komponenten) ✅ - comm/ (11 Block-Typen) ✅ - contacts/ (4 Komponenten) ✅ - dms/ (9 Komponenten) ✅ - mail/ (13 Komponenten) ✅ - tags/ (3 Komponenten) ✅ - companies/ ❌ MISSING - dashboard/ ❌ MISSING ## 10. API Client (12 Module, 3.456 Zeilen) - client.ts, hooks.ts (Re-Export-Hub), auth.ts, users.ts, contacts.ts, roles.ts, groups.ts, audit.ts, notifications.ts, plugins.ts, settings.ts, attachments.ts, unifiedContacts.ts ✅ - workflows.ts ❌ MISSING ## 11. Custom Hooks (5 Hooks) useAuth, useTenant, usePermission, useAIContext, useCommWebSocket ✅ ## 12. Accessibility - ARIA roles ⚠️ Partial - sr-only ⚠️ Partial - prefers-reduced-motion ✅ - 44px touch targets ✅ - focus-ring ✅ ## 13. Tests (38 Dateien, 3.045 Zeilen) - UI Components: 13 Tests ✅ - Shell/Layout: 4 Tests ✅ - Auth: 2 Tests ✅ - Dashboard: 1 Test ✅ - Contacts: 1 Test ✅ - Settings: 3 Tests ✅ - Calendar: 3 Tests ✅ - Mail: 3 Tests ✅ - DMS: 2 Tests ✅ - Search: 2 Tests ✅ - Tags: 2 Tests ✅ - Permissions: 1 Test ✅ - AuditLog: 1 Test ✅ - i18n: 1 Test ✅ - AI Components ❌ MISSING - SettingsGroups/System/Currencies/Taxes/Sequences/Notifications/Plugins ❌ MISSING - Calendar Page ❌ MISSING - DMS Sub-Components ❌ MISSING - Contact Sub-Components ❌ MISSING - Comm Blocks ❌ MISSING - API Hooks ❌ MISSING - Stores ❌ MISSING ## 14. E2E Tests (Playwright) - Playwright ❌ MISSING (komplett) ## 15. Frontend Build - vite.config.ts ✅ - tsconfig.json ✅ - package.json ✅ (26 deps, 15 devDeps) - tailwind.config.js ✅ - postcss.config.js ✅ ## 16. Frontend Dockerfile - ❌ MISSING (Multi-Stage Build im Haupt-Dockerfile) ## 17. Nginx Config - ❌ MISSING ## 18. TipTap (Rich Text Editor) - RichTextEditor.tsx (231 Zeilen) ✅ - 8 TipTap-Extensions ✅ ## 19. PDF.js - Nicht nötig — FilePreviewModal nutzt iframe mit Browser-PDF-Viewer ✅ ## 20. TanStack Table - DataGrid.tsx (160 Zeilen) ✅ - AuditLog ColumnDef ✅ - Virtual Scrolling ❌ MISSING ## Zusammenfassung | Kategorie | Dateien | Zeilen | |-----------|---------|--------| | Pages | 27 | 7.826 | | Components | 70 | 13.893 | | API Modules | 12+ | 3.456 | | Stores | 5 | 461 | | Hooks | 5 | 247 | | Routes | 2 | ~100 | | i18n | 3 | 1.749 | | Tests | 38 | 3.045 | | Config | 5 | ~200 | | Utils | 1 | ~100 | | **Total** | **~167** | **~30.000** | **Frontend ist zu ~70% vollständig.** Kritische Lücken: Plugin-UI-System, Code-Splitting, E2E Tests, Contact-Detail-Route. Alle im MASTER-PLAN.md eingeplant.