github.com/freiheit-com/kuberpult@v1.24.2-0.20240328135542-315d5630abe6/services/frontend-service/src/ui/components/ReleaseVersion/ReleaseVersion.tsx (about) 1 /*This file is part of kuberpult. 2 3 Kuberpult is free software: you can redistribute it and/or modify 4 it under the terms of the Expat(MIT) License as published by 5 the Free Software Foundation. 6 7 Kuberpult is distributed in the hope that it will be useful, 8 but WITHOUT ANY WARRANTY; without even the implied warranty of 9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 MIT License for more details. 11 12 You should have received a copy of the MIT License 13 along with kuberpult. If not, see <https://directory.fsf.org/wiki/License:Expat>. 14 15 Copyright 2023 freiheit.com*/ 16 17 import React from 'react'; 18 import { Release } from '../../../api/api'; 19 import { DisplayManifestLink, DisplaySourceLink } from '../../utils/Links'; 20 21 export type ReleaseVersionProps = { 22 release: Pick<Release, 'version' | 'sourceCommitId' | 'displayVersion' | 'undeployVersion'>; 23 }; 24 25 export type ReleaseVersionWithLinksProps = { 26 application: string; 27 release: Pick<Release, 'version' | 'sourceCommitId' | 'displayVersion' | 'undeployVersion'>; 28 }; 29 30 export const ReleaseVersion: React.FC<ReleaseVersionProps> = ({ release }) => { 31 if (release.undeployVersion) { 32 return ( 33 <span className="release-version__undeploy-version" title="Remove"> 34 undeploy 35 </span> 36 ); 37 } else if (release.displayVersion !== '') { 38 return ( 39 <span className="release-version__display-version" title={release.sourceCommitId}> 40 {release.displayVersion} 41 </span> 42 ); 43 } else if (release.sourceCommitId !== '') { 44 return ( 45 <span className="release-version__commit-id" title={release.sourceCommitId}> 46 {release.sourceCommitId.substring(0, 8)} 47 </span> 48 ); 49 } else { 50 return <span className="release-version__version">#{release.version}</span>; 51 } 52 }; 53 54 export const ReleaseVersionWithLinks: React.FC<ReleaseVersionWithLinksProps> = ({ release, application }) => ( 55 <div className={'links'}> 56 <div className={'links-left'}> 57 <ReleaseVersion release={release} />{' '} 58 </div> 59 <div className={'links-right'}> 60 <DisplaySourceLink displayString={'Source'} commitId={release.sourceCommitId} />{' '} 61 <DisplayManifestLink version={release.version} app={application} displayString={'Manifest'} /> 62 </div> 63 </div> 64 );