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}`} + /> + + + } + /> + )} + + {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" - /> - )} - - - - - 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" + /> + )} + + + + ); }; 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}} >