From 6aeb87a122836f880f8acb8f505597830bffcacf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Fri, 21 Jun 2024 11:48:33 +0200 Subject: [PATCH] :bug: Rework svg export of deleted components --- frontend/src/app/main/render.cljs | 21 +++++++++++++-------- frontend/src/app/worker/export.cljs | 8 ++++---- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/frontend/src/app/main/render.cljs b/frontend/src/app/main/render.cljs index bbf85e4ad..4cec0c71c 100644 --- a/frontend/src/app/main/render.cljs +++ b/frontend/src/app/main/render.cljs @@ -23,6 +23,7 @@ [app.common.geom.shapes.bounds :as gsb] [app.common.logging :as l] [app.common.math :as mth] + [app.common.types.components-list :as ctkl] [app.common.types.file :as ctf] [app.common.types.modifiers :as ctm] [app.common.types.shape-tree :as ctst] @@ -525,8 +526,10 @@ (mf/defc components-svg {::mf/wrap-props false} - [{:keys [data children embed include-metadata source]}] - (let [source (keyword (d/nilv source "components"))] + [{:keys [data children embed include-metadata deleted?]}] + (let [components (if (not deleted?) + (ctkl/components-seq data) + (ctkl/deleted-components-seq data))] [:& (mf/provider embed/context) {:value embed} [:& (mf/provider export/include-metadata-ctx) {:value include-metadata} [:svg {:version "1.1" @@ -536,9 +539,9 @@ :style {:display (when-not (some? children) "none")} :fill "none"} [:defs - (for [[id component] (source data)] + (for [component components] (let [component (ctf/load-component-objects data component)] - [:& component-symbol {:key (dm/str id) :component component}]))] + [:& component-symbol {:key (dm/str (:id component)) :component component}]))] children]]])) @@ -595,10 +598,12 @@ (rds/renderToStaticMarkup elem))))))) (defn render-components - [data source] + [data deleted?] (let [;; Join all components objects into a single map - objects (->> (source data) - (vals) + components (if (not deleted?) + (ctkl/components-seq data) + (ctkl/deleted-components-seq data)) + objects (->> components (map (partial ctf/load-component-objects data)) (map :objects) (reduce conj))] @@ -615,7 +620,7 @@ #js {:data data :embed true :include-metadata true - :source (name source)})] + :deleted? deleted?})] (rds/renderToStaticMarkup elem)))))))) (defn render-frame diff --git a/frontend/src/app/worker/export.cljs b/frontend/src/app/worker/export.cljs index 604845c73..b43bbbe11 100644 --- a/frontend/src/app/worker/export.cljs +++ b/frontend/src/app/worker/export.cljs @@ -52,7 +52,7 @@ :libraries (->> (:libraries file) (into #{}) (mapv str)) :exportType (d/name export-type) :hasComponents (d/not-empty? (ctkl/components-seq (:data file))) - :hasDeletedComponents (d/not-empty? (get-in file [:data :deleted-components])) + :hasDeletedComponents (d/not-empty? (ctkl/deleted-components-seq (:data file))) :hasMedia (d/not-empty? (get-in file [:data :media])) :hasColors (d/not-empty? (get-in file [:data :colors])) :hasTypographies (d/not-empty? (get-in file [:data :typographies]))}))))] @@ -151,12 +151,12 @@ (defn parse-library-components [file] - (->> (r/render-components (:data file) :components) + (->> (r/render-components (:data file) false) (rx/map #(vector (str (:id file) "/components.svg") %)))) (defn parse-deleted-components [file] - (->> (r/render-components (:data file) :deleted-components) + (->> (r/render-components (:data file) true) (rx/map #(vector (str (:id file) "/deleted-components.svg") %)))) (defn fetch-file-with-libraries @@ -380,7 +380,7 @@ deleted-components-stream (->> files-stream (rx/merge-map vals) - (rx/filter #(d/not-empty? (get-in % [:data :deleted-components]))) + (rx/filter #(d/not-empty? (ctkl/deleted-components-seq (:data %)))) (rx/merge-map parse-deleted-components)) pages-stream