projectReleaseDetails.tsx 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import styled from '@emotion/styled';
  2. import Count from 'sentry/components/count';
  3. import DateTime from 'sentry/components/dateTime';
  4. import {KeyValueTable, KeyValueTableRow} from 'sentry/components/keyValueTable';
  5. import Link from 'sentry/components/links/link';
  6. import SidebarSection from 'sentry/components/sidebarSection';
  7. import TextOverflow from 'sentry/components/textOverflow';
  8. import TimeSince from 'sentry/components/timeSince';
  9. import Version from 'sentry/components/version';
  10. import {t, tn} from 'sentry/locale';
  11. import {ReleaseMeta, ReleaseWithHealth} from 'sentry/types';
  12. type Props = {
  13. orgSlug: string;
  14. projectSlug: string;
  15. release: ReleaseWithHealth;
  16. releaseMeta: ReleaseMeta;
  17. };
  18. const ProjectReleaseDetails = ({release, releaseMeta, orgSlug, projectSlug}: Props) => {
  19. const {version, versionInfo, dateCreated, firstEvent, lastEvent} = release;
  20. return (
  21. <SidebarSection title={t('Project Release Details')}>
  22. <KeyValueTable>
  23. <KeyValueTableRow
  24. keyName={t('Created')}
  25. value={<DateTime date={dateCreated} seconds={false} />}
  26. />
  27. <KeyValueTableRow
  28. keyName={t('Version')}
  29. value={<Version version={version} anchor={false} />}
  30. />
  31. <KeyValueTableRow
  32. keyName={t('Package')}
  33. value={
  34. <StyledTextOverflow ellipsisDirection="left">
  35. {versionInfo.package ?? '\u2014'}
  36. </StyledTextOverflow>
  37. }
  38. />
  39. <KeyValueTableRow
  40. keyName={t('First Event')}
  41. value={firstEvent ? <TimeSince date={firstEvent} /> : '\u2014'}
  42. />
  43. <KeyValueTableRow
  44. keyName={t('Last Event')}
  45. value={lastEvent ? <TimeSince date={lastEvent} /> : '\u2014'}
  46. />
  47. <KeyValueTableRow
  48. keyName={t('Source Maps')}
  49. value={
  50. <Link
  51. to={`/settings/${orgSlug}/projects/${projectSlug}/source-maps/${encodeURIComponent(
  52. version
  53. )}/`}
  54. >
  55. <Count value={releaseMeta.releaseFileCount} />{' '}
  56. {tn('artifact', 'artifacts', releaseMeta.releaseFileCount)}
  57. </Link>
  58. }
  59. />
  60. </KeyValueTable>
  61. </SidebarSection>
  62. );
  63. };
  64. const StyledTextOverflow = styled(TextOverflow)`
  65. line-height: inherit;
  66. text-align: right;
  67. `;
  68. export default ProjectReleaseDetails;