Desúnse el navegador de chat desde la ventana que maximiza

Featurekamo-internal
Se descapó
27 de agosto de 2026 a las 20:05 UTC
Autor
kamo
Compromit
8b5ccc0

El navegante de la conversación era un hijo de ToolWindowShell, renderizado dentro de la caja de contenido de la ventana maximizada. Haciendo clic una fila en ella se abre eso la conversación maximizada, que demo la ventana sosteniendola navegante desmontado y remontado en cada uso. El miembro navegaba por Destruyendo la cosa con la que estaban navegando: cubo, posición de desplazamiento y texto de búsqueda todo restablecimiento del instante en que hicieron clic. Ahora es un hermano a nivel de muelle. ToolDock monta exactamente uno ChatNavigatorPanel, fijado por el borde izquierdo, y la ventana maximizada se detiene falta de ella (a la izquierda deset) en lugar de ser dibujado debajo. A través de un swap el panel nunca se desmonta, así que desde el punto de vista de React no le pasa nada - Sí. La semilla de cubo está congelada en la primera herramientaId que vio, así que la lista no se rellena de debajo de un miembro que acaba de hacer clic en una fila. El movimiento es de plomo y rastro: maximización, el navegante sale de la izquierda borde y la ventana se expande en lo que queda atrás 70ms más tarde; La restauración juega al revés, ventana primero, navegante siguiendo 90ms. Ninguno de los dos componentes almacena una dirección - ambos retrasos derivan de la máximación, Así que la bandera ES en la dirección. Los tiempos compartidos viven en maxim maximizedMotion.ts porque las dos mitades ya no pueden ver el estado del otro. Un clic en fila se coreografiado por separado (utilizarMiplo maximizado): el cristal se congela y las dos conversaciones se disuelven dentro de ella, en lugar de una ventana volar al muelle mientras otro vuela fuera junto a un navegante de pie perfectamente quieto. La ventana degradada mantiene la geometría del cristal mientras se desvanece, entonces consigue un ajuste en su ranura del muelle con transiciones todavía apagadas, por lo que es Reaparece desvaneciendo en lugar de volar de vuelta a través del puerto de vistas. Opacidad y transforma el paso de CSS a framer-motion: una transición CSS no puede expresar "comirán desde 8px más bajo" para un elemento ya montado, que es lo que una ventana que se desvanece en el panel tiene que hacer. La geometría se mantiene en CSS. enmarcador volvería a medir calc(100vw - Npx) cada fotograma. prefiere-reducido-moción Deja todo a un intercambio de opacidad. El estado de colapso se eleva en usoChatNavigatorCollapse: ToolDock necesita el anchura del navegador para dimensionar la ventana, y un componente que posee su propia anchura No podía decirlo. No hay nuevas teclas de i18n. Verificado: tsc clean, 144 pruebas pasan a través de herramientas/ y conversaciones/, todos los guiones de guardia pasan. Los dos comportamientos de carga (semilla de cubo congelada, panel sostenido a través de la disolución) fueron probados por mutación. No verificado visualmente. Este repo no tiene ningún navegador sin cabeza.

Todos los cambios

Como lo que ves enviaste?

Cada una de estas actualizaciones aterriza en su espacio de trabajo automáticamente. Empieza gratis y verlo crecer semana tras semana.

Arranzar gratis para siempreVer Precios