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  );