diff --git a/src/actions/auth.ts b/src/actions/auth.ts index e4bc70df3..33684075a 100644 --- a/src/actions/auth.ts +++ b/src/actions/auth.ts @@ -17,6 +17,7 @@ import { startOnboarding } from 'soapbox/actions/onboarding'; import { custom } from 'soapbox/custom'; import { queryClient } from 'soapbox/queries/client'; import { selectAccount } from 'soapbox/selectors'; +import { unsetSentryAccount } from 'soapbox/sentry'; import KVStore from 'soapbox/storage/kv-store'; import toast from 'soapbox/toast'; import { getLoggedInAccount, parseBaseURL } from 'soapbox/utils/auth'; @@ -220,6 +221,9 @@ export const logOut = () => queryClient.invalidateQueries(); queryClient.clear(); + // Clear the account from Sentry. + unsetSentryAccount(); + dispatch({ type: AUTH_LOGGED_OUT, account, standalone }); toast.success(messages.loggedOut); diff --git a/src/sentry.ts b/src/sentry.ts index 4ef1ea77e..8d84b122a 100644 --- a/src/sentry.ts +++ b/src/sentry.ts @@ -1,3 +1,5 @@ +import sourceCode from 'soapbox/utils/code'; + import type { Account } from './schemas'; /** Start Sentry. */ @@ -36,6 +38,8 @@ async function startSentry(dsn: string): Promise { // for finer control tracesSampleRate: 1.0, }); + + Sentry.setContext('soapbox', sourceCode); } /** Associate the account with Sentry events. */ @@ -45,7 +49,14 @@ async function setSentryAccount(account: Account) { Sentry.setUser({ id: account.id, username: account.acct, + url: account.url, }); } -export { startSentry, setSentryAccount }; \ No newline at end of file +/** Remove the account from Sentry events. */ +async function unsetSentryAccount() { + const Sentry = await import('@sentry/react'); + Sentry.setUser(null); +} + +export { startSentry, setSentryAccount, unsetSentryAccount }; \ No newline at end of file diff --git a/src/utils/code-compiletime.ts b/src/utils/code-compiletime.ts index d9606c3a1..f229d5e10 100644 --- a/src/utils/code-compiletime.ts +++ b/src/utils/code-compiletime.ts @@ -15,7 +15,7 @@ const tryGit = (cmd: string): string | undefined => { } }; -const version = (pkg: Record) => { +const version = (pkg: { version: string }): string => { // Try to discern from GitLab CI first if (CI_COMMIT_TAG === `v${pkg.version}` || CI_COMMIT_REF_NAME === 'stable') { return pkg.version;