mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
75 lines
2.1 KiB
TypeScript
75 lines
2.1 KiB
TypeScript
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 type {IgnoredStatusDetails} from 'sentry/types';
|
|
|
|
type Props = {
|
|
statusDetails: IgnoredStatusDetails;
|
|
};
|
|
|
|
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="dangerText" 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;
|