diff --git a/frontend/src/app/App.scss b/frontend/src/app/App.scss
index 3e4dd89d26..60c55f9db1 100644
--- a/frontend/src/app/App.scss
+++ b/frontend/src/app/App.scss
@@ -41,12 +41,6 @@ body,
inset-inline-start: 12px;
}
}
- .pf-topology-container {
- overflow-y: hidden;
- .pf-v5-c-drawer__panel.pf-m-resizable {
- min-width: 350px;
- }
- }
}
// specificity targeting form elements to override --pf-v5-global--FontSize--md
diff --git a/frontend/src/concepts/pipelines/content/pipelinesDetails/pipeline/PipelineDetails.tsx b/frontend/src/concepts/pipelines/content/pipelinesDetails/pipeline/PipelineDetails.tsx
index e863ba7942..c4f7e10fcf 100644
--- a/frontend/src/concepts/pipelines/content/pipelinesDetails/pipeline/PipelineDetails.tsx
+++ b/frontend/src/concepts/pipelines/content/pipelinesDetails/pipeline/PipelineDetails.tsx
@@ -163,86 +163,81 @@ const PipelineDetails: PipelineCoreDetailsPageComponent = ({ breadcrumbPath }) =
style={{ flexBasis: 0, overflowY: 'hidden' }}
variant="light"
>
- {
+ setActiveTabKey(tabIndex);
+ setSelectedId(null);
+ }}
+ aria-label="Pipeline Details tabs"
+ role="region"
+ >
+ Graph}
+ aria-label="Pipeline Graph Tab"
+ tabContentId={`tabContent-${PipelineDetailsTab.GRAPH}`}
+ />
+ Summary}
+ aria-label="Pipeline Summary Tab"
+ >
+
+
+
+
+ Pipeline spec}
+ data-testid="pipeline-yaml-tab"
+ aria-label="Pipeline YAML Tab"
+ tabContentId={`tabContent-${PipelineDetailsTab.YAML}`}
+ />
+
+
-
- {
- setActiveTabKey(tabIndex);
- setSelectedId(null);
+ {nodes.length === 0 ? (
+
+ ) : (
+ {
+ setSelectedId(ids.length ? ids[0] : null);
}}
- aria-label="Pipeline Details tabs"
- role="region"
- >
- Graph}
- aria-label="Pipeline Graph Tab"
- tabContentId={`tabContent-${PipelineDetailsTab.GRAPH}`}
- />
- Summary}
- aria-label="Pipeline Summary Tab"
- >
-
-
-
-
- Pipeline spec}
- data-testid="pipeline-yaml-tab"
- aria-label="Pipeline YAML Tab"
- tabContentId={`tabContent-${PipelineDetailsTab.YAML}`}
- />
-
-
-
-
- {nodes.length === 0 ? (
-
- ) : (
- {
- setSelectedId(ids.length ? ids[0] : null);
- }}
- sidePanel={panelContent}
+ sidePanel={
+ setSelectedId(null)}
/>
- )}
-
-
-
-
-
-
-
-
+ }
+ />
+ )}
+
+
+
+
+
+
{pipeline && (
diff --git a/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRun/PipelineRunDetailsTabs.tsx b/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRun/PipelineRunDetailsTabs.tsx
index fa076175e7..817abf66c9 100644
--- a/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRun/PipelineRunDetailsTabs.tsx
+++ b/frontend/src/concepts/pipelines/content/pipelinesDetails/pipelineRun/PipelineRunDetailsTabs.tsx
@@ -47,66 +47,58 @@ export const PipelineRunDetailsTabs: React.FC = ({
style={{ flexBasis: 0, overflowY: 'hidden' }}
variant="light"
>
- setActiveKey(eventKey)}
+ aria-label="Pipeline run details tabs"
>
-
- setActiveKey(eventKey)}
- aria-label="Pipeline run details tabs"
- >
- Graph}
- aria-label="Run graph tab"
- data-testid="pipeline-run-tab-graph"
- />
- Details}
- aria-label="Run details tab"
- data-testid="pipeline-run-tab-details"
- >
-
-
-
-
- {!isJob && pipelineSpec && (
- Pipeline spec}
- aria-label="Run spec tab"
- data-testid="pipeline-run-tab-spec"
- />
- )}
-
-
-
-
- {graphContent}
-
- Graph}
+ aria-label="Run graph tab"
+ data-testid="pipeline-run-tab-graph"
+ />
+ Details}
+ aria-label="Run details tab"
+ data-testid="pipeline-run-tab-details"
+ >
+
+
+
+
+ {!isJob && pipelineSpec && (
+
-
-
-
-
-
-
+ tabContentId={DetailsTabKey.Spec}
+ title={Pipeline spec}
+ aria-label="Run spec tab"
+ data-testid="pipeline-run-tab-spec"
+ />
+ )}
+
+
+
+ {graphContent}
+
+
+
+
+
+
);
};
diff --git a/frontend/src/concepts/topology/PipelineVisualizationSurface.tsx b/frontend/src/concepts/topology/PipelineVisualizationSurface.tsx
index 488b579ba6..96c29b68c9 100644
--- a/frontend/src/concepts/topology/PipelineVisualizationSurface.tsx
+++ b/frontend/src/concepts/topology/PipelineVisualizationSurface.tsx
@@ -37,18 +37,25 @@ const PipelineVisualizationSurface: React.FC
const controller = useVisualizationController();
const [error, setError] = React.useState();
+ const selectedNode = React.useMemo(() => {
+ if (selectedIds?.[0]) {
+ const node = controller.getNodeById(selectedIds[0]);
+ if (node) {
+ return node;
+ }
+ }
+ return null;
+ }, [selectedIds, controller]);
+
React.useEffect(() => {
let resizeTimeout: NodeJS.Timeout | null;
- if (selectedIds?.[0]) {
- const selectedNode = controller.getNodeById(selectedIds[0]);
- if (selectedNode) {
- // Use a timeout in order to allow the side panel to be shown and window size recomputed
- resizeTimeout = setTimeout(() => {
- controller.getGraph().panIntoView(selectedNode, { offset: 20, minimumVisible: 100 });
- resizeTimeout = null;
- }, 500);
- }
+ if (selectedNode) {
+ // Use a timeout in order to allow the side panel to be shown and window size recomputed
+ resizeTimeout = setTimeout(() => {
+ controller.getGraph().panIntoView(selectedNode, { offset: 20, minimumVisible: 100 });
+ resizeTimeout = null;
+ }, 500);
}
return () => {
if (resizeTimeout) {
@@ -182,7 +189,7 @@ const PipelineVisualizationSurface: React.FC
})}
/>
}
- sideBarOpen={!!sidePanel}
+ sideBarOpen={!!selectedNode}
sideBarResizable
sideBar={{sidePanel}}
>