[UI] Views modularisieren - TSX-Dateien in Komponenten aufteilen #290
Labels
No labels
good first issue
has-pr
help wanted
idea
priority
critical
priority
high
priority
low
priority
medium
status
blocked
status
in-progress
status
needs-review
status
ready
type
bug
type
docs
type
enhancement
type
feature
type
refactor
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
customable/claude-mem#290
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Die View-Dateien im UI-Package sind zu groß und monolithisch. Dies erschwert:
Aktuelle Dateigrößen
Settings.tsxSessions.tsxDocuments.tsxProjects.tsxTasks.tsxLive.tsxInsights.tsxMemories.tsxAnalytics.tsxDashboard.tsxSearch.tsxGesamt: ~7.000 Zeilen in 11 Dateien
Zielstruktur
Jede View sollte in ein eigenes Verzeichnis mit Unterkomponenten aufgeteilt werden:
Richtlinien für die Aufteilung
1. Komponenten-Größe
2. Single Responsibility
3. Wiederverwendbare Komponenten
Gemeinsame Patterns in
components/extrahieren:4. Hooks extrahieren
Komplexe State-Logik in Custom Hooks auslagern:
Schrittweise Umsetzung
Phase 1: Kritische Views (>900 Zeilen)
Settings.tsx→ siehe Issue #289Sessions.tsxDocuments.tsxPhase 2: Mittlere Views (400-600 Zeilen)
Projects.tsxTasks.tsxLive.tsxInsights.tsxPhase 3: Gemeinsame Komponenten
components/extrahierenAkzeptanzkriterien
index.tsxcomponents/Priorität
Mittel - Technische Schulden, verbessert langfristige Wartbarkeit
Verwandte Issues
Ergänzung: Utility-Funktionen auslagern
Neben den Komponenten sollten auch Hilfsfunktionen in separate Utils-Dateien ausgelagert werden.
Typische Kandidaten
Beispiele
Vorher (in jeder View redundant):
Nachher (zentral in utils):
Weitere Utils
Aktualisierte Checkliste
Phase 4: Utils extrahieren