mirror of
https://github.com/penpot/penpot.git
synced 2025-08-01 16:01:49 +02:00
🐛 Fix importation of zip files
This commit is contained in:
parent
aadd312e39
commit
fbdba39be9
3 changed files with 64 additions and 35 deletions
|
@ -13,6 +13,7 @@
|
|||
[app.main.data.events :as ev]
|
||||
[app.main.data.messages :as msg]
|
||||
[app.main.data.modal :as modal]
|
||||
[app.main.features :as features]
|
||||
[app.main.store :as st]
|
||||
[app.main.ui.components.file-uploader :refer [file-uploader]]
|
||||
[app.main.ui.icons :as i]
|
||||
|
@ -272,7 +273,8 @@
|
|||
(->> (uw/ask-many!
|
||||
{:cmd :import-files
|
||||
:project-id project-id
|
||||
:files files})
|
||||
:files files
|
||||
:features @features/features-ref})
|
||||
(rx/subs
|
||||
(fn [{:keys [file-id status message errors] :as msg}]
|
||||
(swap! state update :files update-status file-id status message errors))))))
|
||||
|
@ -347,7 +349,7 @@
|
|||
success-files (->> files (filter #(and (= (:status %) :import-finish) (empty? (:errors %)))) count)
|
||||
pending-analysis? (> (->> files (filter #(= (:status %) :analyzing)) count) 0)
|
||||
pending-import? (> num-importing 0)
|
||||
|
||||
|
||||
valid-files? (or (some? template)
|
||||
(> (+ (->> files (filterv (fn [x] (not= (:status x) :analyze-error))) count)) 0))]
|
||||
|
||||
|
|
|
@ -126,10 +126,9 @@
|
|||
|
||||
(defn create-file
|
||||
"Create a new file on the back-end"
|
||||
[context]
|
||||
[context features]
|
||||
(let [resolve-fn (:resolve context)
|
||||
file-id (resolve-fn (:file-id context))
|
||||
features (into #{} (:features context))]
|
||||
file-id (resolve-fn (:file-id context))]
|
||||
(rp/cmd! :create-temp-file
|
||||
{:id file-id
|
||||
:name (:name context)
|
||||
|
@ -575,14 +574,14 @@
|
|||
(rx/tap #(rx/end! progress-str)))]))
|
||||
|
||||
(defn create-files
|
||||
[context files]
|
||||
[{:keys [features] :as context} files]
|
||||
|
||||
(let [data (group-by :file-id files)]
|
||||
(rx/concat
|
||||
(->> (rx/from files)
|
||||
(rx/map #(merge context %))
|
||||
(rx/flat-map (fn [context]
|
||||
(->> (create-file context)
|
||||
(->> (create-file context features)
|
||||
(rx/map #(vector % (first (get data (:file-id context)))))))))
|
||||
|
||||
(->> (rx/from files)
|
||||
|
@ -641,10 +640,11 @@
|
|||
(rx/of {:uri (:uri file) :error error}))))))))))
|
||||
|
||||
(defmethod impl/handler :import-files
|
||||
[{:keys [project-id files]}]
|
||||
[{:keys [project-id files features]}]
|
||||
|
||||
(let [context {:project-id project-id
|
||||
:resolve (resolve-factory)}
|
||||
:resolve (resolve-factory)
|
||||
:features features}
|
||||
zip-files (filter #(= "application/zip" (:type %)) files)
|
||||
binary-files (filter #(= "application/octet-stream" (:type %)) files)]
|
||||
|
||||
|
@ -691,5 +691,9 @@
|
|||
(rx/catch (fn [cause]
|
||||
(log/error :hint "unexpected error on import process"
|
||||
:project-id project-id
|
||||
:cause cause))))))
|
||||
:cause cause)
|
||||
(if (map? cause)
|
||||
(js/console.error (pr-str cause))
|
||||
(js/console.error cause)))))))
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue