Просмотр исходного кода

fix(project-details): Correct some types, don't crash on alert render fail (#80466)

Resolves [JAVASCRIPT-2WME](https://sentry.sentry.io/issues/6052052434/)
Leander Rodrigues 3 месяцев назад
Родитель
Сommit
718203493b

+ 1 - 1
static/app/components/globalEventProcessingAlert.tsx

@@ -15,7 +15,7 @@ type Props = {
 // 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
+    project => project?.eventProcessing?.symbolicationDegraded
   );
 
   if (!projectsInTheLowPriorityQueue.length) {

+ 3 - 3
static/app/types/project.tsx

@@ -20,9 +20,6 @@ export type Project = {
   digestsMinDelay: number;
   dynamicSamplingBiases: DynamicSamplingBias[] | null;
   environments: string[];
-  eventProcessing: {
-    symbolicationDegraded: boolean;
-  };
   features: string[];
   firstEvent: string | null;
   firstTransactionEvent: boolean;
@@ -67,6 +64,9 @@ export type Project = {
   verifySSL: boolean;
   builtinSymbolSources?: string[];
   defaultEnvironment?: string;
+  eventProcessing?: {
+    symbolicationDegraded?: boolean;
+  };
   hasUserReports?: boolean;
   highlightContext?: Record<string, string[]>;
   highlightPreset?: {

+ 4 - 1
static/app/views/projectDetail/projectDetail.tsx

@@ -10,6 +10,7 @@ import {Breadcrumbs} from 'sentry/components/breadcrumbs';
 import {LinkButton} from 'sentry/components/button';
 import ButtonBar from 'sentry/components/buttonBar';
 import CreateAlertButton from 'sentry/components/createAlertButton';
+import ErrorBoundary from 'sentry/components/errorBoundary';
 import FeedbackWidgetButton from 'sentry/components/feedback/widget/feedbackWidgetButton';
 import GlobalEventProcessingAlert from 'sentry/components/globalEventProcessingAlert';
 import IdBadge from 'sentry/components/idBadge';
@@ -206,7 +207,9 @@ export default function ProjectDetail({router, location, organization}: Props) {
             </Layout.Header>
 
             <Layout.Body noRowGap>
-              {project && <StyledGlobalEventProcessingAlert projects={[project]} />}
+              <ErrorBoundary customComponent={null}>
+                {project && <StyledGlobalEventProcessingAlert projects={[project]} />}
+              </ErrorBoundary>
               <Layout.Main>
                 <ProjectFiltersWrapper>
                   <ProjectFilters