import DateTime from 'sentry/components/dateTime'; import Duration from 'sentry/components/duration'; import {BannerContainer, BannerSummary} from 'sentry/components/events/styles'; import ExternalLink from 'sentry/components/links/externalLink'; import {t} from 'sentry/locale'; import {Group, GroupSubstatus, IgnoredStatusDetails, Organization} from 'sentry/types'; import {trackAnalytics} from 'sentry/utils/analytics'; interface ArchivedBoxProps { organization: Organization; statusDetails: IgnoredStatusDetails; substatus: Group['substatus']; } function ArchivedBox({substatus, statusDetails, organization}: ArchivedBoxProps) { function trackDocsClick() { trackAnalytics('issue_details.issue_status_docs_clicked', { organization, }); } function renderReason() { const {ignoreUntil, ignoreCount, ignoreWindow, ignoreUserCount, ignoreUserWindow} = statusDetails; if (substatus === GroupSubstatus.ARCHIVED_UNTIL_ESCALATING) { return t( "This issue has been archived. It'll return to your inbox if it escalates. To learn more, %s", {t('read the docs')} ); } if (ignoreUntil) { return t( 'This issue has been archived until %s.', ); } if (ignoreCount && ignoreWindow) { return t( 'This issue has been archived until it occurs %s time(s) in %s.', {ignoreCount.toLocaleString()}, ); } if (ignoreCount) { return t( 'This issue has been archived until it occurs %s more time(s).', {ignoreCount.toLocaleString()} ); } if (ignoreUserCount && ignoreUserWindow) { return t( 'This issue has been archived until it affects %s user(s) in %s.', {ignoreUserCount.toLocaleString()}, ); } if (ignoreUserCount) { return t( 'This issue has been archived until it affects %s more user(s).', {ignoreUserCount.toLocaleString()} ); } return t('This issue has been archived forever.'); } return ( {renderReason()} ); } export default ArchivedBox;