1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- import DateTime from 'sentry/components/dateTime';
- import Duration from 'sentry/components/duration';
- import {BannerContainer, BannerSummary} from 'sentry/components/events/styles';
- import {IconMute} from 'sentry/icons';
- import {t} from 'sentry/locale';
- import {ResolutionStatusDetails} from 'sentry/types';
- type Props = {
- statusDetails: ResolutionStatusDetails;
- };
- function MutedBox({statusDetails}: Props) {
- function renderReason() {
- const {ignoreUntil, ignoreCount, ignoreWindow, ignoreUserCount, ignoreUserWindow} =
- statusDetails;
- if (ignoreUntil) {
- return t(
- 'This issue has been ignored until %s',
- <strong>
- <DateTime date={ignoreUntil} />
- </strong>
- );
- }
- if (ignoreCount && ignoreWindow) {
- return t(
- 'This issue has been ignored until it occurs %s time(s) in %s',
- <strong>{ignoreCount.toLocaleString()}</strong>,
- <strong>
- <Duration seconds={ignoreWindow * 60} />
- </strong>
- );
- }
- if (ignoreCount) {
- return t(
- 'This issue has been ignored until it occurs %s more time(s)',
- <strong>{ignoreCount.toLocaleString()}</strong>
- );
- }
- if (ignoreUserCount && ignoreUserWindow) {
- return t(
- 'This issue has been ignored until it affects %s user(s) in %s',
- <strong>{ignoreUserCount.toLocaleString()}</strong>,
- <strong>
- <Duration seconds={ignoreUserWindow * 60} />
- </strong>
- );
- }
- if (ignoreUserCount) {
- return t(
- 'This issue has been ignored until it affects %s more user(s)',
- <strong>{ignoreUserCount.toLocaleString()}</strong>
- );
- }
- return t('This issue has been ignored');
- }
- return (
- <BannerContainer priority="default">
- <BannerSummary>
- <IconMute color="red300" size="sm" />
- <span>
- {renderReason()} —
- {t(
- 'You will not be notified of any changes and it will not show up by default in feeds.'
- )}
- </span>
- </BannerSummary>
- </BannerContainer>
- );
- }
- export default MutedBox;
|