Просмотр исходного кода

enhance: redirect to bug report if multi-tabs access to a graph

Tienson Qin 2 лет назад
Родитель
Сommit
52f04c2d24
1 измененных файлов с 11 добавлено и 10 удалено
  1. 11 10
      src/main/frontend/persist_db/browser.cljs

+ 11 - 10
src/main/frontend/persist_db/browser.cljs

@@ -8,6 +8,7 @@
             [promesa.core :as p]
             [frontend.util :as util]
             [frontend.handler.notification :as notification]
+            [frontend.handler.route :as route-handler]
             [cljs-bean.core :as bean]
             [frontend.state :as state]
             [electron.ipc :as ipc]))
@@ -49,6 +50,14 @@
     :else
     nil))
 
+(defn- sqlite-error-handler
+  [error]
+  (if (= "NoModificationAllowedError"  (.-name error))
+    (do
+      (state/pub-event! [:db/multiple-tabs-opfs-failed])
+      (route-handler/redirect! {:to :bug-report}))
+    (notification/show! [:div (str "SQLiteDB error: " error)] :error)))
+
 (defrecord InBrowser []
   protocol/PersistentDB
   (<new [_this repo]
@@ -60,12 +69,7 @@
       (-> (.listDB sqlite)
           (p/then (fn [result]
                     (bean/->clj result)))
-          (p/catch (fn [error]
-                     (prn :debug :list-db-error (js/Date.))
-                     (if (= "NoModificationAllowedError"  (.-name error))
-                       (state/pub-event! [:db/multiple-tabs-opfs-failed])
-                       (notification/show! [:div (str "SQLiteDB error: " error)] :error))
-                     [])))))
+          (p/catch sqlite-error-handler))))
 
   (<unsafe-delete [_this repo]
     (when-let [^js sqlite @*sqlite]
@@ -84,10 +88,7 @@
     (when-let [^js sqlite @*sqlite]
       (-> (p/let [_ (.createOrOpenDB sqlite repo)]
             (.getInitialData sqlite repo))
-          (p/catch (fn [error]
-                     (prn :debug :fetch-initial-data-error repo)
-                     (js/console.error error)
-                     (notification/show! [:div (str "SQLiteDB fetch error: " error)] :error) {})))))
+          (p/catch sqlite-error-handler))))
 
   (<export-db [_this repo opts]
     (when-let [^js sqlite @*sqlite]