Merge remote-tracking branch 'origin/staging' into develop

This commit is contained in:
Andrey Antukh 2022-08-10 14:10:57 +02:00
commit 99ed610dde
24 changed files with 66 additions and 60 deletions

View file

@ -35,12 +35,9 @@
;; --- Utility functions
(defn validate-file ;; Check that a file obtained with the file javascript API is valid.
(defn validate-file
"Check that a file obtained with the file javascript API is valid."
[file]
(when (> (.-size file) cm/max-file-size)
(ex/raise :type :validation
:code :media-too-large
:hint (str/fmt "media size is large than 5mb (size: %s)" (.-size file))))
(when-not (contains? cm/valid-image-types (.-type file))
(ex/raise :type :validation
:code :media-type-not-allowed

View file

@ -200,7 +200,7 @@
(= (:code error) :invalid-image)
(rx/of (dm/error (tr "errors.media-type-not-allowed")))
(= (:code error) :media-too-large)
(= (:code error) :media-max-file-size-reached)
(rx/of (dm/error (tr "errors.media-too-large")))
(= (:code error) :media-type-mismatch)

View file

@ -46,6 +46,14 @@
;; Set the main potok error handler
(reset! st/on-error on-error)
(defmethod ptk/handle-error :default
[error]
(let [hint (str/concat "Unexpected error: " (:hint error))]
(ts/schedule #(st/emit! (rt/assign-exception error)))
(js/console.group hint)
(ex/ignoring (js/console.error (pr-str error)))
(js/console.groupEnd hint)))
;; We receive a explicit authentication error; this explicitly clears
;; all profile data and redirect the user to the login page. This is
;; here and not in app.main.errors because of circular dependency.
@ -188,9 +196,10 @@
(defn on-unhandled-error
[error]
(letfn [(is-ignorable-exception? [cause]
(condp = (ex-message cause)
"Possible side-effect in debug-evaluate" true
false))]
(let [message (ex-message cause)]
(or (= message "Possible side-effect in debug-evaluate")
(= message "Unexpected end of input") true
(str/starts-with? message "Unexpected token "))))]
(if (instance? ExceptionInfo error)
(-> error ex-data ptk/handle-error)
(when-not (is-ignorable-exception? error)
@ -203,12 +212,9 @@
(defonce uncaught-error-handler
(letfn [(on-error [event]
;; EvalError is a debug error that happens for unknown reason
(when-not (str/includes? (.-message event) "EvalError")
(.error js/console event)
(.preventDefault ^js event)
(some-> (unchecked-get event "error")
(on-unhandled-error))))]
(.preventDefault ^js event)
(some-> (unchecked-get event "error")
(on-unhandled-error)))]
(.addEventListener glob/window "error" on-error)
(fn []
(.removeEventListener glob/window "error" on-error))))