Tree panel: animated width toggle, no reflow flash; steady chat header
- The three panel modes were three separate fixed-width asides, so a mode switch jumped the whole transcript column width in one frame: scrollbar flash, overshoot, re-correct. Now ONE aside animates its width exactly like the left sidebar (reusing the sidebar-motion hook, so it inherits the provider's mount-gated transition), with a FIXED-width inner layer clipped by overflow-hidden — content never reflows mid-transition. - The chat header was auto-height: the sidebar toggle (a size-9 icon button) renders only while the sidebar is closed, so opening it collapsed the row and slid the title + phase chip up. The header is now a constant h-10.
This commit is contained in:
+4
-1
@@ -210,7 +210,10 @@ export function Chat({
|
||||
dock stays sticky inside the scroller, untouched. */}
|
||||
<div className="flex h-dvh">
|
||||
<div className="flex min-w-0 flex-1 flex-col">
|
||||
<header className="flex items-center gap-3 px-3 py-2">
|
||||
{/* h-10, not py-2: the toggle (a size-9 icon button) renders only
|
||||
while the sidebar is CLOSED — an auto-height row would collapse
|
||||
when it disappears and slide the title + chip up. */}
|
||||
<header className="flex h-10 items-center gap-3 px-3">
|
||||
<SidebarToggle />
|
||||
<div className="min-w-0 flex-1 truncate font-medium">{title}</div>
|
||||
<PhaseChip phase={phases.at(-1) ?? "probe"} />
|
||||
|
||||
Reference in New Issue
Block a user