diff --git a/resources/electron.html b/resources/electron.html index 9568f3903..4796df2e3 100644 --- a/resources/electron.html +++ b/resources/electron.html @@ -26,7 +26,6 @@ Logseq: A local-first knowledge base - diff --git a/src/main/frontend/components/settings.cljs b/src/main/frontend/components/settings.cljs index 374d91d5a..706418931 100644 --- a/src/main/frontend/components/settings.cljs +++ b/src/main/frontend/components/settings.cljs @@ -144,6 +144,7 @@ current-repo (state/get-current-repo) enable-journals? (state/enable-journals? current-repo) enable-encryption? (state/enable-encryption? current-repo) + sentry-disabled? (state/sub :sentry/disabled?) enable-git-auto-push? (state/enable-git-auto-push? current-repo) enable-block-time? (state/enable-block-time?) show-brackets? (state/show-brackets?) @@ -344,6 +345,13 @@ [:div.ver version] (if (util/electron?) (app-updater))]] + (toggle "disable_sentry" + (t :settings-page/disable-sentry) + sentry-disabled? + (fn [] + (let [value (not sentry-disabled?)] + (state/set-sentry-disabled! value)))) + [:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-start [:label.block.text-sm.font-medium.leading-5.opacity-70 {:for "developer_mode"} diff --git a/src/main/frontend/dicts.cljs b/src/main/frontend/dicts.cljs index 128193d7f..2009b477a 100644 --- a/src/main/frontend/dicts.cljs +++ b/src/main/frontend/dicts.cljs @@ -202,6 +202,7 @@ :content/click-to-edit "Click to edit" :settings-page/edit-config-edn "Edit config.edn (for current repo)" :settings-page/show-brackets "Show brackets" + :settings-page/disable-sentry "Disable Sentry.io (for error tracking)" :settings-page/custom-date-format "Preferred journal format" :settings-page/preferred-file-format "Preferred file format" :settings-page/preferred-workflow "Preferred workflow" diff --git a/src/main/frontend/handler.cljs b/src/main/frontend/handler.cljs index 254a01336..1c70dd675 100644 --- a/src/main/frontend/handler.cljs +++ b/src/main/frontend/handler.cljs @@ -137,10 +137,11 @@ (defn init-sentry [] - (let [cfg - {:dsn "https://636e9174ffa148c98d2b9d3369661683@o416451.ingest.sentry.io/5311485" - :release (util/format "logseq@%s" version/version)}] - (.init js/window.Sentry (clj->js cfg)))) + (when-not (state/sentry-disabled?) + (let [cfg + {:dsn "https://636e9174ffa148c98d2b9d3369661683@o416451.ingest.sentry.io/5311485" + :release (util/format "logseq@%s" version/version)}] + (.init js/window.Sentry (clj->js cfg))))) (defn on-load-events [] diff --git a/src/main/frontend/state.cljs b/src/main/frontend/state.cljs index e981b3b6a..79f6adcf5 100644 --- a/src/main/frontend/state.cljs +++ b/src/main/frontend/state.cljs @@ -29,6 +29,7 @@ :repo/changed-files nil :nfs/user-granted? {} :nfs/refreshing? nil + :sentry/disabled? (storage/get "sentry-disabled") ;; TODO: how to detect the network reliably? :network/online? true :indexeddb/support? true @@ -1215,6 +1216,17 @@ [value] (set-state! :block/component-editing-mode? value)) +(defn sentry-disabled? + [] + (:sentry/disabled? @state)) + +(defn set-sentry-disabled! + [value] + (set-state! :sentry/disabled? value) + (storage/set "sentry-disabled" value) + (when value + (.close js/window.Sentry))) + (defn get-editor-args [] (:editor/args @state))