Skip to content

Commit cba7b80

Browse files
committed
Improve scroll to bottom
1 parent 63f20fd commit cba7b80

File tree

6 files changed

+14
-23
lines changed

6 files changed

+14
-23
lines changed

src/main/frontend/pipeline-console-view/pipeline-console/main/PipelineConsole.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@ import React from "react";
66

77
import Dropdown from "../../../common/components/dropdown.tsx";
88
import DropdownPortal from "../../../common/components/dropdown-portal.tsx";
9-
import VisibilitySelect from "./components/checkboxes.tsx";
9+
import StagesCustomization from "./components/stages-customization.tsx";
1010
import Stages from "./components/stages.tsx";
1111
import DataTreeView from "./DataTreeView.tsx";
1212
import { useStepsPoller } from "./hooks/use-steps-poller.ts";
1313
import { useLayoutPreferences } from "./providers/user-preference-provider.tsx";
1414
import SplitView from "./split-view.tsx";
1515
import StageView from "./StageView.tsx";
1616
import { CONSOLE, DOCUMENT } from "./symbols.tsx";
17+
import ScrollToTopBottom from "./scroll-to-top-bottom.tsx";
1718

1819
export default function PipelineConsole() {
1920
const rootElement = document.getElementById("console-pipeline-root");
@@ -37,7 +38,7 @@ export default function PipelineConsole() {
3738
<DropdownPortal>
3839
<Dropdown
3940
items={[
40-
<VisibilitySelect key="visibility-select" />,
41+
<StagesCustomization key="visibility-select" />,
4142
"separator",
4243
{
4344
text: "View as plain text",
@@ -95,6 +96,8 @@ export default function PipelineConsole() {
9596
</div>
9697
</SplitView>
9798
</SplitView>
99+
100+
<ScrollToTopBottom />
98101
</>
99102
);
100103
}

src/main/frontend/pipeline-console-view/pipeline-console/main/components/checkboxes.scss renamed to src/main/frontend/pipeline-console-view/pipeline-console/main/components/stages-customization.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.idk {
1+
.pgv-stages-customization {
22
display: grid;
33
grid-template-columns: auto 1fr auto;
44
padding-right: 0.6rem;

src/main/frontend/pipeline-console-view/pipeline-console/main/components/checkboxes.tsx renamed to src/main/frontend/pipeline-console-view/pipeline-console/main/components/stages-customization.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import "./checkboxes.scss";
1+
import "./stages-customization.scss";
22

33
import React from "react";
44

@@ -8,7 +8,7 @@ import {
88
useLayoutPreferences,
99
} from "../providers/user-preference-provider.tsx";
1010

11-
export default function VisibilitySelect() {
11+
export default function StagesCustomization() {
1212
const {
1313
mainViewVisibility,
1414
setMainViewVisibility,
@@ -26,9 +26,8 @@ export default function VisibilitySelect() {
2626

2727
return (
2828
<>
29-
{/* View Selector */}
3029
<label
31-
className="jenkins-dropdown__item idk"
30+
className="jenkins-dropdown__item pgv-stages-customization"
3231
htmlFor="main-view-visibility"
3332
>
3433
<div className="jenkins-dropdown__item__icon">
@@ -54,9 +53,8 @@ export default function VisibilitySelect() {
5453
</select>
5554
</label>
5655

57-
{/* Position Toggle */}
5856
<label
59-
className="jenkins-dropdown__item idk"
57+
className="jenkins-dropdown__item pgv-stages-customization"
6058
htmlFor="stage-view-position"
6159
>
6260
<div className="jenkins-dropdown__item__icon">

src/main/frontend/pipeline-console-view/pipeline-console/main/scroll-to-top-bottom.scss

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,7 @@
1-
.pgv-scroll-to-top-bottom__container {
2-
position: sticky;
3-
bottom: 0;
4-
z-index: 999;
5-
margin-top: -0.375rem;
6-
}
7-
81
.pgv-scroll-to-top-bottom {
9-
position: absolute;
10-
top: calc((3.125rem + var(--section-padding)) * -1);
11-
right: calc(var(--section-padding) / 2);
2+
position: fixed;
3+
bottom: calc(var(--section-padding) * 1);
4+
right: calc(var(--section-padding) * 2);
125
display: flex;
136
gap: 0.375rem;
147
padding: 0.375rem;
@@ -20,6 +13,7 @@
2013
scale: 0.25;
2114
transition: var(--elastic-transition);
2215
pointer-events: none;
16+
z-index: 1;
2317

2418
&--visible {
2519
opacity: 1;

src/main/frontend/pipeline-console-view/pipeline-console/main/scroll-to-top-bottom.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ export default function ScrollToTopBottom() {
5555
};
5656

5757
return (
58-
<div className="pgv-scroll-to-top-bottom__container">
5958
<div
6059
className={classNames(`pgv-scroll-to-top-bottom`, {
6160
"pgv-scroll-to-top-bottom--visible": isScrollable,
@@ -94,7 +93,6 @@ export default function ScrollToTopBottom() {
9493
/>
9594
</svg>
9695
</button>
97-
</div>
9896
</div>
9997
);
10098
}

src/main/frontend/pipeline-console-view/pipeline-console/main/stage-steps.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import React from "react";
55
import { StepInfo, StepLogBufferInfo } from "../../../common/RestClient.tsx";
66
import ConsoleLogCard from "./ConsoleLogCard.tsx";
77
import { LOG_FETCH_SIZE, StageInfo } from "./PipelineConsoleModel.tsx";
8-
import ScrollToTopBottom from "./scroll-to-top-bottom.tsx";
98

109
export default function StageSteps({
1110
stage,
@@ -43,7 +42,6 @@ export default function StageSteps({
4342
/>
4443
);
4544
})}
46-
<ScrollToTopBottom />
4745
</div>
4846
);
4947
}

0 commit comments

Comments
 (0)