import {Fragment} from 'react'; import styled from '@emotion/styled'; import {Flex} from 'sentry/components/container/flex'; import {DowntimeDuration} from 'sentry/components/events/interfaces/uptime/uptimeDataSection'; import {t} from 'sentry/locale'; import {space} from 'sentry/styles/space'; import type {Group} from 'sentry/types/group'; import {getConfigForIssueType} from 'sentry/utils/issueTypeConfig'; interface OccurrenceSummaryProps { group: Group; className?: string; } /** * This component summarizes the occurance of an issue when the event unit we display below is NOT * the occurence. For example, we display 'check-ins' in uptime issues, but the occrurence is a * status change from success to failure. */ export function OccurrenceSummary({group, className}: OccurrenceSummaryProps) { const issueTypeConfig = getConfigForIssueType(group, group.project); if (!issueTypeConfig.header.occurrenceSummary.enabled) { return null; } const items: React.ReactNode[] = []; if (issueTypeConfig.header.occurrenceSummary.duration) { items.push( {t('Duration')} ); } // TODO(Leander): Add last successful check-in when the data is available // TODO(Leander): Add Incident ID when the data is available return items.length > 0 ? ( {items.map((item, i) => ( {item} ))} ) : null; } const ItemTitle = styled('div')` font-size: ${p => p.theme.fontSizeSmall}; color: ${p => p.theme.gray300}; font-weight: ${p => p.theme.fontWeightBold}; `; const ItemValue = styled('div')` font-size: ${p => p.theme.fontSizeLarge}; font-weight: ${p => p.theme.fontWeightNormal}; `;