Files
2024-02-15 17:01:50 +00:00

57 lines
1.6 KiB
TypeScript

import styled from '@emotion/styled';
import DeployBadge from 'sentry/components/deployBadge';
import NotAvailable from 'sentry/components/notAvailable';
import * as SidebarSection from 'sentry/components/sidebarSection';
import TimeSince from 'sentry/components/timeSince';
import {t} from 'sentry/locale';
import {space} from 'sentry/styles/space';
import type {Organization, Release, ReleaseProject} from 'sentry/types';
type Props = {
organization: Organization;
project: Required<ReleaseProject>;
release: Release;
};
function ReleaseStats({organization, release, project}: Props) {
const {lastDeploy, dateCreated, version} = release;
return (
<Container>
<SidebarSection.Wrap>
<SidebarSection.Title>
{lastDeploy?.dateFinished ? t('Date Deployed') : t('Date Created')}
</SidebarSection.Title>
<SidebarSection.Content>
<TimeSince date={lastDeploy?.dateFinished ?? dateCreated} />
</SidebarSection.Content>
</SidebarSection.Wrap>
<SidebarSection.Wrap>
<SidebarSection.Title>{t('Last Deploy')}</SidebarSection.Title>
<SidebarSection.Content>
{lastDeploy?.dateFinished ? (
<DeployBadge
deploy={lastDeploy}
orgSlug={organization.slug}
version={version}
projectId={project.id}
/>
) : (
<NotAvailable />
)}
</SidebarSection.Content>
</SidebarSection.Wrap>
</Container>
);
}
const Container = styled('div')`
display: grid;
grid-template-columns: 50% 50%;
grid-row-gap: ${space(2)};
`;
export default ReleaseStats;