- Verschifft
- 27. August 2026 um 20:05 UTC
- Autor
- kamo
- Ausschuss
- 8b5ccc0
Der Konversations-Navigator war eine Kinderrequisite von ToolWindowShell, gerendert innerhalb der maximalen Fenster-Inhalte-Box. Ein Klick auf eine Reihe in ihm öffnet, dass Konversation maximiert, die das Fenster degradiert, die es hält - so die Navigator unmontiert und bei jedem Gebrauch wieder montiert. Das Mitglied navigierte durch zerstören das, womit sie navigierten: Eimer, Scroll-Position und suchen Text alle zurückgesetzt den Augenblick, den sie geklickt. Es ist jetzt ein Dock-Level-Geschwister. ToolDock montiert genau ein ChatNavigatorPanel, fixiert die linke Kante, und die maximale Fenster stoppt kurz davon (leftInset) statt darunter gezeichnet zu werden. Über einen Swap das Panel nie unmounts, so aus React-Sicht nichts passiert es. Der Eimer Samen ist beim ersten ToolId es je gesehen gefroren, so dass die Liste nicht wieder aus unter einem Mitglied, das nur eine Zeile geklickt. Bewegung ist Blei-und-Trail: Maximierend, der Navigator springt aus der Linken Kante und das Fenster dehnt sich in das, was hinter ihm zurückgelassen wird 70ms später; Die Wiederherstellung spielt die Rückseite, Fenster zuerst, Navigator Trailing von 90ms. Keine Komponente speichert eine Richtung - beide Verzögerungen ergeben sich aus "maximiert", so die Flagge IST die Richtung. Geteilte Timings leben in maximizeMotion.ts weil die beiden Hälften den Zustand des anderen nicht mehr sehen können. Ein Reihenklick wird separat choreografiert (useMaximizedSwap): die Pane friert ein und die beiden Gespräche kreuzen sich in ihm, anstatt ein Fenster fliegen zum Dock, während ein anderer fliegt aus ihm neben einem Navigator stehen vollkommen ruhig. Das degradierte Fenster behält die Geometrie der Scheibe, während sie verblasst, dann bekommt einen Abset-Beat an seinem Dock-Slot mit Übergängen noch aus, so dass es Erscheint wieder, indem sie verblassen, anstatt über den Aussichtshafen zurück zu fliegen. Opacity und transformieren Schritt von CSS zu Framer-Bewegung: ein CSS-Übergang kann "Start von 8px niedriger" für ein bereits montiertes Element ausdrücken, das ist, was ein Fenster zu tun hat, das in der Scheibe verblasst. Geometrie bleibt auf CSS Framer würde calc(100vw - Npx) jeden Frame neu zu vermeigen. bevorzugt-reduziert-bewegung lässt alles auf einen Opa-Tausch fallen. Collapse State Lifts in useChatNavigatorCollapse: ToolDock benötigt die Navigator Breite, um das Fenster zu bemessen, und eine Komponente, die ihre eigene Breite konnte es nicht sagen. Keine neuen i18n-Tasten. Verifiziert: tsc clean, 144 Tests bestehen über Werkzeuge/ und Gespräche/, alle Wachsenskripte vergehen. Die beiden tragenden Verhaltensweisen (eingefrorene Eimersamen, Scheibe durch die Auflösung gehalten) wurden mutation-getestet. Nicht visuell verifiziert - dieses Repo hat keinen kopflosen Browser.