From 577b731b22607a062ce2344f5f5193455625aacb Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 25 Nov 2024 12:29:59 +0100 Subject: [PATCH] :bug: Fix import format detection and error handling --- frontend/src/app/main/ui/dashboard/import.scss | 3 +++ frontend/src/app/worker/import.cljs | 14 +++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/main/ui/dashboard/import.scss b/frontend/src/app/main/ui/dashboard/import.scss index fbcad58fe..257134dc4 100644 --- a/frontend/src/app/main/ui/dashboard/import.scss +++ b/frontend/src/app/main/ui/dashboard/import.scss @@ -64,6 +64,7 @@ } .file-entry { + display: flex; .file-name { @include flexRow; .file-icon { @@ -114,6 +115,8 @@ } .error-message, .progress-message { + display: flex; + align-items: center; height: $s-32; color: var(--modal-text-foreground-color); } diff --git a/frontend/src/app/worker/import.cljs b/frontend/src/app/worker/import.cljs index 0083a6475..ebeb67daa 100644 --- a/frontend/src/app/worker/import.cljs +++ b/frontend/src/app/worker/import.cljs @@ -799,7 +799,8 @@ (rx/merge-map (fn [body] (let [mtype (parse-mtype body)] - (if (= "application/zip" mtype) + (cond + (= "application/zip" mtype) (->> (uz/load body) (rx/merge-map read-zip-manifest) (rx/map @@ -808,7 +809,13 @@ (let [manifest (decode-manifest manifest)] (assoc file :type :binfile-v3 :files (:files manifest))) (assoc file :type :legacy-zip :body body))))) - (rx/of (assoc file :type :binfile-v1)))))) + + (= "application/octet-stream" mtype) + (rx/of (assoc file :type :binfile-v1)) + + :else + (rx/of (assoc file :type :unknown)))))) + (rx/share))] (->> (rx/merge @@ -837,9 +844,10 @@ (assoc :status :success)))))))) (->> stream - (rx/filter (fn [data] (= "other" (:type data)))) + (rx/filter (fn [data] (= :unknown (:type data)))) (rx/map (fn [_] {:uri (:uri file) + :status :error :error (tr "dashboard.import.analyze-error")})))) (rx/catch (fn [cause]