diff --git a/src/app/analytics.ts b/src/app/analytics.ts index e4d5443..2eb1e02 100644 --- a/src/app/analytics.ts +++ b/src/app/analytics.ts @@ -1,6 +1,7 @@ /* eslint prefer-rest-params: 0 */ import {page} from "$app/stores" +import {getSetting} from "@app/state" const w = window as any @@ -12,7 +13,7 @@ w.plausible = export const setupAnalytics = () => { page.subscribe($page => { - if ($page.route) { + if ($page.route && getSetting("report_usage")) { w.plausible("pageview", {u: $page.route.id}) } }) diff --git a/src/app/state.ts b/src/app/state.ts index 1f5702a..1862bfa 100644 --- a/src/app/state.ts +++ b/src/app/state.ts @@ -305,6 +305,8 @@ export type Settings = { values: { show_media: boolean hide_sensitive: boolean + report_usage: boolean + report_errors: boolean send_delay: number upload_type: "nip96" | "blossom" nip96_urls: string[] @@ -315,6 +317,8 @@ export type Settings = { export const defaultSettings = { show_media: true, hide_sensitive: true, + report_usage: true, + report_errors: false, send_delay: 3000, upload_type: "nip96", nip96_urls: ["https://nostr.build"], diff --git a/src/app/tracking.ts b/src/app/tracking.ts index d63ca09..bc393b4 100644 --- a/src/app/tracking.ts +++ b/src/app/tracking.ts @@ -1,10 +1,17 @@ import * as Sentry from "@sentry/browser" +import {getSetting} from "@app/state" export const setupTracking = () => { if (import.meta.env.VITE_GLITCHTIP_API_KEY) { Sentry.init({ dsn: import.meta.env.VITE_GLITCHTIP_API_KEY, - tracesSampleRate: 0.01, + beforeSend(event: any) { + if (!getSetting("report_errors")) { + return null + } + + return event + }, integrations(integrations) { return integrations.filter(integration => integration.name !== "Breadcrumbs") }, diff --git a/src/routes/settings/+page.svelte b/src/routes/settings/+page.svelte index 78c525e..b204e29 100644 --- a/src/routes/settings/+page.svelte +++ b/src/routes/settings/+page.svelte @@ -39,7 +39,7 @@