fix(workspace): allow collapsing lane detail in single-pane layout, fix invisible scrollbar track

Detail toggle was hidden and info forced-visible whenever layout was
single-pane; user needed the ability to hide it too. Scrollbar track
color matched the page background (surface-0), making it invisible —
moved it to surface-2 so the track reads against any surface.
This commit is contained in:
2026-08-19 11:21:31 +07:00
parent 4cc39f5069
commit 43d4989f1e
2 changed files with 16 additions and 18 deletions
+2 -2
View File
@@ -75,7 +75,7 @@
@layer base { @layer base {
* { * {
scrollbar-width: thin; scrollbar-width: thin;
scrollbar-color: rgb(var(--border)) rgb(var(--surface-0)); scrollbar-color: rgb(var(--border)) rgb(var(--surface-2));
} }
*::-webkit-scrollbar { *::-webkit-scrollbar {
@@ -84,7 +84,7 @@
} }
*::-webkit-scrollbar-track { *::-webkit-scrollbar-track {
background: rgb(var(--surface-0)); background: rgb(var(--surface-2));
} }
*::-webkit-scrollbar-thumb { *::-webkit-scrollbar-thumb {
+5 -7
View File
@@ -199,11 +199,11 @@ export function Workspace() {
// Split view state // Split view state
const [splitView, setSplitView] = useState<SplitViewState>(() => readSplitViewState()); const [splitView, setSplitView] = useState<SplitViewState>(() => readSplitViewState());
// Info block (pickers, LaneCard, PipelineMap, proof gallery) is always shown // Info block (pickers, LaneCard, PipelineMap, proof gallery) starts shown in
// in single-pane view; in split view it starts collapsed so tall content // single-pane view and collapsed in split view, but the toggle below can
// never crowds the pane grid, and the user expands it on demand. // override that in either mode — the user decides, not the layout.
const [infoExpanded, setInfoExpanded] = useState(false); const [infoExpanded, setInfoExpanded] = useState(() => splitView.layout === 1);
const showInfo = splitView.layout === 1 || infoExpanded; const showInfo = infoExpanded;
const setLayout = useCallback((layout: SplitLayout) => { const setLayout = useCallback((layout: SplitLayout) => {
setSplitView((prev) => { setSplitView((prev) => {
@@ -557,7 +557,6 @@ export function Workspace() {
})} })}
</span> </span>
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
{splitView.layout !== 1 && (
<button <button
type="button" type="button"
data-testid="lane-detail-toggle" data-testid="lane-detail-toggle"
@@ -567,7 +566,6 @@ export function Workspace() {
> >
{infoExpanded ? tLanes("laneDetail.hide") : tLanes("laneDetail.show")} {infoExpanded ? tLanes("laneDetail.hide") : tLanes("laneDetail.show")}
</button> </button>
)}
<SplitLayoutToggle splitView={splitView} setLayout={setLayout} /> <SplitLayoutToggle splitView={splitView} setLayout={setLayout} />
</div> </div>
</div> </div>