diff --git a/src/main/frontend/error.cljs b/src/main/frontend/error.cljs new file mode 100644 index 000000000..b2a15b53f --- /dev/null +++ b/src/main/frontend/error.cljs @@ -0,0 +1,14 @@ +(ns frontend.error + (:require [clojure.string :as string])) + +(defonce ignored + #{"ResizeObserver loop limit exceeded"}) + +(defn ignored? + [message] + (let [message (str message)] + (boolean + (some + ;; TODO: some cases might need regex check + #(= (string/lower-case message) (string/lower-case %)) + ignored)))) diff --git a/src/main/frontend/handler.cljs b/src/main/frontend/handler.cljs index fcd1aabc0..dd594bba2 100644 --- a/src/main/frontend/handler.cljs +++ b/src/main/frontend/handler.cljs @@ -26,17 +26,19 @@ [goog.object :as gobj] [lambdaisland.glogi :as log] [promesa.core :as p] - [frontend.ui :as ui])) + [frontend.ui :as ui] + [frontend.error :as error])) (defn set-global-error-notification! [] (set! js/window.onerror (fn [message, source, lineno, colno, error] - (notification/show! - (str "message=" message "\nsource=" source "\nlineno=" lineno "\ncolno=" colno "\nerror=" error) - :error - ;; Don't auto-hide - false)))) + (when-not (error/ignored? message) + (notification/show! + (str "message=" message "\nsource=" source "\nlineno=" lineno "\ncolno=" colno "\nerror=" error) + :error + ;; Don't auto-hide + false))))) (defn- watch-for-date! []