Browse Source

fix(feedback): check if registry data loaded first (#66639)

couple tweaks from the previous PR:
- typed `params`
- do an explicit check for `isLoading`
Michelle Zhang 1 year ago
parent
commit
5a1d7725b5

+ 26 - 11
static/app/components/onboarding/gettingStartedDoc/utils/feedbackOnboarding.tsx

@@ -1,7 +1,10 @@
 import Alert from 'sentry/components/alert';
 import ExternalLink from 'sentry/components/links/externalLink';
 import {StepType} from 'sentry/components/onboarding/gettingStartedDoc/step';
-import type {OnboardingConfig} from 'sentry/components/onboarding/gettingStartedDoc/types';
+import type {
+  DocsParams,
+  OnboardingConfig,
+} from 'sentry/components/onboarding/gettingStartedDoc/types';
 import {t, tct} from 'sentry/locale';
 
 export const getFeedbackConfigureDescription = ({
@@ -142,13 +145,19 @@ export const getCrashReportJavaScriptInstallStep = params => [
   },
 ];
 
-export function getCrashReportSDKInstallFirstStep(params) {
+export function getCrashReportSDKInstallFirstStep(params: DocsParams) {
+  const dataLoaded =
+    params.sourcePackageRegistries && !params.sourcePackageRegistries.isLoading;
   const version =
-    params.sourcePackageRegistries.data?.['sentry.javascript.browser'].version ?? '';
+    (dataLoaded &&
+      params.sourcePackageRegistries.data?.['sentry.javascript.browser'].version) ??
+    '';
   const hash =
-    params.sourcePackageRegistries.data?.['sentry.javascript.browser']?.files[
-      'bundle.min.js'
-    ].checksums['sha384-base64'] ?? '';
+    (dataLoaded &&
+      params.sourcePackageRegistries.data?.['sentry.javascript.browser'].files[
+        'bundle.min.js'
+      ].checksums['sha384-base64']) ??
+    '';
 
   return {
     description: t('Make sure you have the JavaScript SDK available:'),
@@ -223,13 +232,19 @@ export const getCrashReportBackendInstallStep = params => [
   },
 ];
 
-export function getCrashReportSDKInstallFirstStepRails(params) {
+export function getCrashReportSDKInstallFirstStepRails(params: DocsParams) {
+  const dataLoaded =
+    params.sourcePackageRegistries && !params.sourcePackageRegistries.isLoading;
   const version =
-    params.sourcePackageRegistries.data?.['sentry.javascript.browser'].version ?? '';
+    (dataLoaded &&
+      params.sourcePackageRegistries.data?.['sentry.javascript.browser'].version) ??
+    '';
   const hash =
-    params.sourcePackageRegistries.data?.['sentry.javascript.browser']?.files[
-      'bundle.min.js'
-    ].checksums['sha384-base64'] ?? '';
+    (dataLoaded &&
+      params.sourcePackageRegistries.data?.['sentry.javascript.browser'].files[
+        'bundle.min.js'
+      ].checksums['sha384-base64']) ??
+    '';
 
   return {
     description: t('Make sure you have the JavaScript SDK available:'),