From 4b67c0593d596d7e259c6b77684e5b65b81ad789 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 21 Jun 2024 12:44:58 +0200 Subject: [PATCH] :sparkles: Upload media with data in plugins --- frontend/src/app/main/data/workspace/media.cljs | 2 +- frontend/src/app/plugins/api.cljs | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) 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