diff --git a/src/components/component/git-commit-tags.tsx b/src/components/component/git-commit-tags.tsx index f2dbdf91f..c673a8836 100644 --- a/src/components/component/git-commit-tags.tsx +++ b/src/components/component/git-commit-tags.tsx @@ -25,7 +25,7 @@ export const GitCommitTags = ({ commitID, gitTags, repository }: Props) => { {repository ? ( ) : ( - { gitTags } + <>{gitTags} )} {!commitID && } diff --git a/src/components/job-overview/component-list.tsx b/src/components/job-overview/component-list.tsx index d05f4d5fc..ce5dee121 100644 --- a/src/components/job-overview/component-list.tsx +++ b/src/components/job-overview/component-list.tsx @@ -1,53 +1,79 @@ -import { Typography } from '@equinor/eds-core-react'; -import { upperFirst } from 'lodash'; import * as PropTypes from 'prop-types'; -import { buildComponentMap } from '../../utils/build-component-map'; -import { ComponentSummary } from '../../store/radix-api'; -import { GitCommitTags } from '../component/git-commit-tags'; +import { DeploymentSummary } from '../../store/radix-api'; import { DockerImage } from '../docker-image'; +import { GitCommitTags } from '../component/git-commit-tags'; +import { List, Typography } from '@equinor/eds-core-react'; +import { Link } from 'react-router-dom'; +import { routeWithParams } from '../../utils/string'; +import { routes } from '../../routes'; type Props = { - components: Array; + appName: string; + deployments: DeploymentSummary[]; repository: string; - commonCommitID: string; }; -export const ComponentList = ({ - components, - repository, - commonCommitID, -}: Props) => { - const compMap = buildComponentMap(components); +export const ComponentList = ({ appName, deployments, repository }: Props) => { return ( <> - {Object.keys(compMap).map((type: ComponentSummary['type']) => - compMap[type].map((component) => ( - - {upperFirst(type)} {component.name} - {' image '} - - {commonCommitID && - (component.skipDeployment || - component.commitID !== commonCommitID) && ( + {deployments.some((value) => value.components?.length > 0) && ( + <> + Components + + {deployments.map((deployment) => ( + + + Environment {deployment.environment} + <> - <> from past deployment - + {deployment.components ? ( + + {deployment.components.map((component) => ( + + + {component.name} + {' '} + {' image '} + + {(component.skipDeployment || + component.commitID !== + deployment.gitCommitHash) && ( + <> + <> from past deployment + + + )} + + ))} + + ) : ( + <>No components + )} - )} - - )) + + ))} + + )} ); }; ComponentList.propTypes = { - components: PropTypes.arrayOf( - PropTypes.object as PropTypes.Validator + deployments: PropTypes.arrayOf( + PropTypes.object as PropTypes.Validator> ).isRequired, }; diff --git a/src/components/job-overview/index.tsx b/src/components/job-overview/index.tsx index 72f3511f0..a6908282b 100644 --- a/src/components/job-overview/index.tsx +++ b/src/components/job-overview/index.tsx @@ -324,8 +324,8 @@ export const JobOverview = ({ appName, jobName }: Props) => { )} {job.components && ( )} diff --git a/src/components/job-overview/steps-list.tsx b/src/components/job-overview/steps-list.tsx index 434800aee..34840c8f8 100644 --- a/src/components/job-overview/steps-list.tsx +++ b/src/components/job-overview/steps-list.tsx @@ -49,6 +49,11 @@ export const StepsList: FunctionComponent<{ }> = ({ appName, jobName, steps }) => { const namedSteps = (steps ?? []).filter(({ name }) => !!name); + const getStepKey = (step: Step) => { + return step.components?.length == 1 + ? step.name + '-' + step.components[0] + : step.name; + }; return ( <> Steps @@ -63,7 +68,7 @@ export const StepsList: FunctionComponent<{ ) ?? a.name.localeCompare(b.name) ) .map((step) => ( -
+
diff --git a/src/components/page-deployment/deployment-component-list.tsx b/src/components/page-deployment/deployment-component-list.tsx index 6f4d74b21..44f3a5333 100644 --- a/src/components/page-deployment/deployment-component-list.tsx +++ b/src/components/page-deployment/deployment-component-list.tsx @@ -1,4 +1,4 @@ -import { Typography } from '@equinor/eds-core-react'; +import { List, Typography } from '@equinor/eds-core-react'; import * as PropTypes from 'prop-types'; import { Link } from 'react-router-dom'; @@ -23,33 +23,35 @@ export const DeploymentComponentList = ({ {components && ( <> Components - {components.map((component) => ( - - - {component.name} - {' '} - image - {(component.skipDeployment || - component.commitID !== deployment.gitCommitHash) && ( - <> - <> from past deployment - - - )} - - ))} + + {components.map((component) => ( + + + {component.name} + {' '} + image + {(component.skipDeployment || + component.commitID !== deployment.gitCommitHash) && ( + <> + <> from past deployment + + + )} + + ))} + )}