diff --git a/frontend/src/app/main/data/workspace/media.cljs b/frontend/src/app/main/data/workspace/media.cljs index 8abf32dd8..d97d0b803 100644 --- a/frontend/src/app/main/data/workspace/media.cljs +++ b/frontend/src/app/main/data/workspace/media.cljs @@ -131,7 +131,7 @@ (rx/merge-map svg->clj) (rx/tap on-svg))))) -(defn- process-blobs +(defn process-blobs [{:keys [file-id local? name blobs force-media on-image on-svg]}] (letfn [(svg-blob? [blob] (and (not force-media) diff --git a/frontend/src/app/plugins/api.cljs b/frontend/src/app/plugins/api.cljs index 790197e64..4de6700f8 100644 --- a/frontend/src/app/plugins/api.cljs +++ b/frontend/src/app/plugins/api.cljs @@ -124,6 +124,22 @@ (rx/take 1) (rx/subs! resolve reject))))))) + (uploadMediaData + [_ name data mime-type] + (let [file-id (:current-file-id @st/state)] + (p/create + (fn [resolve reject] + (->> (dwm/process-blobs + {:file-id file-id + :local? false + :name name + :blobs [(js/Blob. #js [data] #js {:type mime-type})] + :on-image identity + :on-svg identity}) + (rx/take 1) + (rx/map u/to-js) + (rx/subs! resolve reject)))))) + (group [_ shapes] (cond