Disattivare il navigatore di chat dalla finestra massimizza

Featurekamo-internal
Spegnimento
27 agosto 2026 alle ore 20:05 UTC
Autore
kamo
Impegno
8b5ccc0

Il navigatore di conversazione era un prop bambino di ToolWindowShell, reso all'interno della finestra ottimizzata. Fare clic su una riga in esso si apre che conversazione massimizzata, che demolisce la finestra che lo tiene — così il navigatore smontato e montato su ogni uso. Il membro navigato da distruggere la cosa con cui stavano navigando: secchio, posizione di scorrimento e testo di ricerca tutti reset l'istante che hanno cliccato. E' un sobrio a livello di banchina. ToolDock monta esattamente uno ChatNavigatorPanel, fissato sul bordo sinistro, e la finestra massimizzata si ferma a corto di esso (`leftInset`) invece di essere disegnato sotto. Condividi su Twitter il pannello non smonta mai, quindi dal punto di vista di React non succede nulla Ecco. Il seme del secchio è congelato al primo strumentoId ha mai visto, quindi la lista non ri-filtro fuori da sotto un membro che ha appena cliccato una riga. Il movimento è piombo-e-trail: massimizzare, il navigatore sgorga da sinistra bordo e la finestra si espande in quello che è lasciato dietro di esso 70ms più tardi; il ripristino gioca il rovescio, prima finestra, navigatore trailing di 90ms. Né il componente memorizza una direzione — entrambi i ritardi derivano da `maximized`, così la bandiera è la direzione. I tempi condivisi vivono in maximiMotion.ts perché le due metà non possono più vedersi a vicenda. Un clic di riga è coreografato separatamente (usoMaximizedSwap): il pannello congela e le due conversazioni si dissolvono dentro di esso, piuttosto che una finestra volare al molo mentre un altro vola fuori di esso accanto a un navigatore in piedi perfettamente ancora. La finestra demota mantiene la geometria del pannello mentre sfuma, poi ottiene un regolare battito al suo dock slot con transizioni ancora fuori, quindi riappare dissolvendosi invece di volare di nuovo attraverso il viewport. Opacità e trasformazione da CSS a framer-motion: una transizione CSS non può esprimere "a partire da 8px più basso" per un elemento già montato, che è ciò che una finestra sbiadisce nel pannello deve fare. Geometria rimane su CSS — framer ri-measure calc(100vw - Npx) ogni frame. preferisce-ridotto-mozione lascia tutto a uno scambio di opacità. Alzacristallo stato in usoChatNavigatorCollapse: ToolDock ha bisogno del larghezza del navigatore per dimensionare la finestra, e un componente che possiede la propria larghezza non poteva dirglielo. Niente nuove chiavi i18n. Verificato: tsc clean, 144 test passano attraverso strumenti / e conversazioni /, tutti gli script di guardia passano. I due comportamenti portanti (seme di secchio congelato, riquadro tenuto attraverso la dissoluzione) sono stati testati mutazione. Non visivamente verificato — questo repo non ha browser senza testa.

Tutte le modifiche

Come quello che vedi la spedizione?

Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.

Inizia gratis per sempreVisualizza il prezzo