Skip to content

Commit 1322ce8

Browse files
mr-remingtontimja
andauthored
Make collapsible marker easier to work with (#459)
Co-authored-by: Tim Jacomb <[email protected]>
1 parent 104db71 commit 1322ce8

File tree

2 files changed

+28
-6
lines changed

2 files changed

+28
-6
lines changed

Diff for: src/main/frontend/pipeline-console-view/pipeline-console/main/PipelineConsole.tsx

+18-4
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ interface PipelineConsoleState {
3939
hasScrolled: boolean;
4040
isComplete: boolean;
4141
hasUnmounted: boolean;
42+
isStageViewExpanded: boolean,
4243
}
4344

4445
// Determines the default selected step.
@@ -135,6 +136,7 @@ export default class PipelineConsole extends React.Component<
135136
hasScrolled: false,
136137
isComplete: false,
137138
hasUnmounted: false,
139+
isStageViewExpanded: true,
138140
};
139141
}
140142

@@ -502,14 +504,23 @@ export default class PipelineConsole extends React.Component<
502504
}
503505
return null;
504506
}
507+
508+
handlePaneCollapse = (sizes: Array<number | null>) => {
509+
const isStageViewExpanded = sizes[0] === null;
510+
511+
if (this.state.isStageViewExpanded !== isStageViewExpanded) {
512+
this.setState({ isStageViewExpanded });
513+
}
514+
};
505515

506516
render() {
507517
const buttonPositionOffset = 10;
508518
const collapseDirection = "left";
509519
const collapseTransition = 500;
510-
const grabberSize = 10;
520+
const grabberSize = 50;
511521
const buttonTransition = "grow";
512-
522+
const stageViewPaneClass = `split-pane ${this.state.isStageViewExpanded ? '' : 'collapsed'}`;
523+
513524
return (
514525
<React.Fragment>
515526
<div className="App">
@@ -518,14 +529,17 @@ export default class PipelineConsole extends React.Component<
518529
initialSizes={[2, 8]}
519530
// minSize in Pixels (for all panes)
520531
minSizes={250}
521-
className="split-pane"
532+
className={stageViewPaneClass}
522533
split="vertical"
523534
collapse={{
524535
collapseTransitionTimeout: collapseTransition,
525536
buttonTransition,
526537
collapseDirection,
527538
buttonPositionOffset,
528539
}}
540+
hooks={{
541+
onCollapse: this.handlePaneCollapse,
542+
}}
529543
resizerOptions={{
530544
grabberSize,
531545
}}
@@ -543,7 +557,7 @@ export default class PipelineConsole extends React.Component<
543557
</div>
544558

545559
<div
546-
className="split-pane split-pane--stage-view"
560+
className={stageViewPaneClass}
547561
key="stage-view"
548562
id="stage-view-pane"
549563
>

Diff for: src/main/frontend/pipeline-console-view/pipeline-console/main/pipeline-console.scss

+10-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313

1414
.app-page-body--one-column {
1515
max-width: 100vw;
16-
margin: var(--section-padding)
16+
margin: var(--section-padding);
17+
margin-bottom: 0px;
1718
}
1819

1920
[data-theme="dark"] {
@@ -387,10 +388,17 @@ svg.detail-icon {
387388

388389
div.split-pane {
389390
position: relative;
390-
padding-left: 8px;
391391
text-align: left;
392392
height: calc(100vh - 300px);
393393
overflow: auto;
394+
395+
> div[style*="position: relative;"] {
396+
width: 24px;
397+
}
398+
399+
&.collapsed {
400+
overflow: hidden;
401+
}
394402
}
395403

396404
a {

0 commit comments

Comments
 (0)