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))