diff --git a/frameworks/react-cra/add-ons/sentry/assets/instrument.server.mjs b/frameworks/react-cra/add-ons/sentry/assets/instrument.server.mjs index 770a660b..4f2cbcb0 100644 --- a/frameworks/react-cra/add-ons/sentry/assets/instrument.server.mjs +++ b/frameworks/react-cra/add-ons/sentry/assets/instrument.server.mjs @@ -1,10 +1,17 @@ import * as Sentry from '@sentry/tanstackstart-react' -Sentry.init({ - dsn: import.meta.env.VITE_SENTRY_DSN, - // Adds request headers and IP for users, for more info visit: - // https://docs.sentry.io/platforms/javascript/guides/tanstackstart-react/configuration/options/#sendDefaultPii - sendDefaultPii: true, - tracesSampleRate: 1.0, - replaysSessionSampleRate: 1.0, - replaysOnErrorSampleRate: 1.0, -}) + +const sentryDsn = import.meta.env?.VITE_SENTRY_DSN ?? process.env.VITE_SENTRY_DSN + +if (!sentryDsn) { + console.warn('VITE_SENTRY_DSN is not defined. Sentry is not running.') +} else { + Sentry.init({ + dsn: sentryDsn, + // Adds request headers and IP for users, for more info visit: + // https://docs.sentry.io/platforms/javascript/guides/tanstackstart-react/configuration/options/#sendDefaultPii + sendDefaultPii: true, + tracesSampleRate: 1.0, + replaysSessionSampleRate: 1.0, + replaysOnErrorSampleRate: 1.0, + }) +} diff --git a/frameworks/react-cra/add-ons/sentry/assets/src/routes/demo/sentry.testing.tsx b/frameworks/react-cra/add-ons/sentry/assets/src/routes/demo/sentry.testing.tsx index d7e9cb25..9fab59eb 100644 --- a/frameworks/react-cra/add-ons/sentry/assets/src/routes/demo/sentry.testing.tsx +++ b/frameworks/react-cra/add-ons/sentry/assets/src/routes/demo/sentry.testing.tsx @@ -285,6 +285,16 @@ function RouteComponent() { const [results, setResults] = useState< Record >({}) + const [sentryConfigured, setSentryConfigured] = useState(null) + + useEffect(() => { + // Check if Sentry DSN environment variable is set + const hasDsn = !!import.meta.env.VITE_SENTRY_DSN + setSentryConfigured(hasDsn) + }, []) + + // Don't show warning until we've checked on the client + const showWarning = sentryConfigured === false const handleClientError = async () => { setIsLoading((prev) => ({ ...prev, clientError: true })) @@ -394,8 +404,8 @@ function RouteComponent() {

- Click the buttons below to trigger errors and traces, then view - them in your{' '} + Click the buttons below to trigger errors and traces, then view them + in your{' '} + {/* Sentry Not Initialized Warning */} + {showWarning && ( +

+ + Warning + + +
+

+ Sentry is not initialized +

+

+ Set the VITE_SENTRY_DSN environment variable to enable error tracking and performance monitoring. +

+
+
+ )} + {/* Features Grid */}
Trigger Client Error @@ -483,6 +520,7 @@ function RouteComponent() { variant="primary" onClick={handleClientTrace} loading={isLoading.clientTrace} + disabled={sentryConfigured === false} > Test Client Trace @@ -513,6 +551,7 @@ function RouteComponent() { variant="error" onClick={handleServerError} loading={isLoading.serverError} + disabled={sentryConfigured === false} > Trigger Server Error @@ -533,6 +572,7 @@ function RouteComponent() { variant="primary" onClick={handleServerTrace} loading={isLoading.serverTrace} + disabled={sentryConfigured === false} > Test Server Trace diff --git a/frameworks/react-cra/src/checksum.ts b/frameworks/react-cra/src/checksum.ts index d8731b0a..2163efef 100644 --- a/frameworks/react-cra/src/checksum.ts +++ b/frameworks/react-cra/src/checksum.ts @@ -1,3 +1,3 @@ // This file is auto-generated. Do not edit manually. // Generated from add-ons, examples, hosts, project, and toolchains directories -export const contentChecksum = '91ab333689da4a55dac5572c70c66bf3cf8710caf4fe62ee5fd63d7fa924f8a2' +export const contentChecksum = '88a422e61dd3dfda1f79da5f1c567dbec2b4f7e574bcacda5613409e8403f0e3' diff --git a/frameworks/solid/src/checksum.ts b/frameworks/solid/src/checksum.ts index bc0f706b..35a4da1b 100644 --- a/frameworks/solid/src/checksum.ts +++ b/frameworks/solid/src/checksum.ts @@ -1,3 +1,3 @@ // This file is auto-generated. Do not edit manually. // Generated from add-ons, examples, hosts, project, and toolchains directories -export const contentChecksum = '97450d3bd15410ec0fb6553e0b2709464dbef2b643f509e73ff124a3230f44c5' +export const contentChecksum = '3e9cf8aa946ca4d59c413689bf5f02d778bcd23c95bc5e04956f47331261dac8'