Elemente in der Element-Hierarchie-Navigation konnten manchmal nicht mehr zugeklappt werden, nachdem sie aufgeklappt wurden.
- Manueller Toggle-State: Hinzugefügt
manuallyToggledState, um zu verfolgen, ob der Benutzer manuell ein Element auf-/zugeklappt hat - Verbesserte useEffect Logik: Die automatischen Expand-Effekte berücksichtigen jetzt den manuellen Toggle-State
- Intelligenter Reset: Der manuelle Toggle-State wird nur zurückgesetzt, wenn das Element nicht mehr im aktuellen Pfad ist
- Stellen Sie sicher, dass die Anwendung läuft (http://localhost:3001/flow-ui-toolkit)
- Laden Sie die Testdatei
test-hierarchy.jsonüber "Öffnen"
- Öffnen Sie die Element-Hierarchie (linke Spalte)
- Klicken Sie auf das Expand-Icon (▶) neben "Hauptgruppe"
- Die Gruppe sollte sich öffnen und Unterelemente anzeigen
- Klicken Sie auf das Collapse-Icon (▼) neben "Hauptgruppe"
- Erwartetes Verhalten: Die Gruppe sollte sich schließen und geschlossen bleiben
- Öffnen Sie "Hauptgruppe" → "Untergruppe" → "Array Element"
- Klicken Sie auf ein Element tief in der Hierarchie (z.B. "Array Text Element")
- Alle übergeordneten Elemente sollten automatisch geöffnet werden
- Klicken Sie manuell auf das Collapse-Icon einer übergeordneten Gruppe
- Erwartetes Verhalten: Die Gruppe sollte sich schließen und geschlossen bleiben, auch wenn ein Unterelement ausgewählt ist
- Navigieren Sie tief in die Hierarchie und klappen Sie manuell Elemente zu
- Wechseln Sie zu einem anderen Bereich der Anwendung (z.B. andere Seite)
- Kehren Sie zur ursprünglichen Hierarchie zurück
- Erwartetes Verhalten: Die automatische Expand-Logik sollte wieder funktionieren
- Testen Sie das Expand/Collapse-Verhalten auch mit:
- ChipGroup-Elementen
- Array-Elementen
- Verschachtelten Gruppen
- Erwartetes Verhalten: Alle Containertypen sollten sich korrekt verhalten
src/components/HybridEditor/ElementHierarchyTree.tsx
// Neuer State für manuellen Toggle
const [manuallyToggled, setManuallyToggled] = useState(false);
// Verbesserte useEffect Hooks
React.useEffect(() => {
if (isInCurrentPath && hasActualChildren && !manuallyToggled) {
setExpanded(true);
}
}, [isInCurrentPath, hasActualChildren, manuallyToggled]);
// Manueller Toggle Handler
onClick={(e) => {
e.stopPropagation();
setExpanded(!expanded);
setManuallyToggled(true); // Markiere als manuell geändert
}}
// Intelligenter Reset
React.useEffect(() => {
if (!isInCurrentPath) {
setManuallyToggled(false);
}
}, [isInCurrentPath]);- ✅ Elemente können jederzeit manuell zu- und aufgeklappt werden
- ✅ Manuelles Zuklappen wird respektiert, auch bei automatischen Expand-Triggern
- ✅ Automatische Expansion funktioniert weiterhin für Navigation
- ✅ Reset-Verhalten ist intelligent und nicht zu aggressiv