1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import {Fragment} from 'react';
- import Alert from 'sentry/components/alert';
- import ExternalLink from 'sentry/components/links/externalLink';
- import {tct} from 'sentry/locale';
- import {Project} from 'sentry/types';
- const sentryStatusPageLink = 'https://status.sentry.io/';
- type Props = {
- projects: Project[];
- className?: string;
- };
- // This alert makes the user aware that one or more projects have been selected for the Low Priority Queue
- function GlobalEventProcessingAlert({className, projects}: Props) {
- const projectsInTheLowPriorityQueue = projects.filter(
- project => project.eventProcessing.symbolicationDegraded
- );
- if (!projectsInTheLowPriorityQueue.length) {
- return null;
- }
- return (
- <Alert className={className} type="info" showIcon>
- {projectsInTheLowPriorityQueue.length === 1
- ? tct(
- 'Event Processing for this project is currently degraded. Events may appear with larger delays than usual or get dropped. Please check the [link:Status] page for a potential outage.',
- {
- link: <ExternalLink href={sentryStatusPageLink} />,
- }
- )
- : tct(
- 'Event Processing for the [projectSlugs] projects is currently degraded. Events may appear with larger delays than usual or get dropped. Please check the [link:Status] page for a potential outage.',
- {
- projectSlugs: projectsInTheLowPriorityQueue.map(({slug}, index) => (
- <Fragment key={slug}>
- <strong>{slug}</strong>
- {index !== projectsInTheLowPriorityQueue.length - 1 && ', '}
- </Fragment>
- )),
- link: <ExternalLink href={sentryStatusPageLink} />,
- }
- )}
- </Alert>
- );
- }
- export default GlobalEventProcessingAlert;
|