Pārlūkot izejas kodu

ui: only notify error on default error screen

Junyi Du 3 gadi atpakaļ
vecāks
revīzija
efacbbae5d
2 mainītis faili ar 11 papildinājumiem un 1 dzēšanām
  1. 1 1
      src/main/frontend/page.cljs
  2. 10 0
      src/main/frontend/ui.cljs

+ 1 - 1
src/main/frontend/page.cljs

@@ -97,7 +97,7 @@
   (when-let [route-match (state/sub :route-match)]
     (let [route-name (get-in route-match [:data :name])]
       (when-let [view (:view (:data route-match))]
-        (ui/catch-error
+        (ui/catch-error-and-notify
          (helpful-default-error-screen)
          (if (= :draw route-name)
            (view route-match)

+ 10 - 0
src/main/frontend/ui.cljs

@@ -712,6 +712,16 @@
         content]])))
 
 (rum/defcs catch-error
+  < {:did-catch
+     (fn [state error _info]
+       (log/error :exception error)
+       (assoc state ::error error))}
+  [{error ::error, c :rum/react-component} error-view view]
+  (if (some? error)
+    error-view
+    view))
+
+(rum/defcs catch-error-and-notify
   < {:did-catch
      (fn [state error _info]
        (log/error :exception error)