🐛 Fix problem when exporting components with images

This commit is contained in:
alonso.torres 2021-06-25 11:27:31 +02:00
parent 91b6a0bf69
commit e818170eec

View file

@ -30,16 +30,16 @@
[])) []))
(defn populate-images-cache (defn populate-images-cache
[data] [objects]
(let [images (->> (:objects data) (let [images (->> objects
(vals) (vals)
(mapcat get-image-data))] (mapcat get-image-data))]
(->> (rx/from images) (->> (rx/from images)
(rx/map #(cfg/resolve-file-media %)) (rx/map #(cfg/resolve-file-media %))
(rx/flat-map http/fetch-data-uri)))) (rx/flat-map http/fetch-data-uri))))
(defn populate-fonts-cache [data] (defn populate-fonts-cache [objects]
(let [texts (->> (:objects data) (let [texts (->> objects
(vals) (vals)
(filterv text?) (filterv text?)
(mapv :content)) ] (mapv :content)) ]
@ -56,8 +56,8 @@
[data] [data]
(rx/concat (rx/concat
(->> (rx/merge (->> (rx/merge
(populate-images-cache data) (populate-images-cache (:objects data))
(populate-fonts-cache data)) (populate-fonts-cache (:objects data)))
(rx/ignore)) (rx/ignore))
(->> (rx/of data) (->> (rx/of data)
@ -68,14 +68,19 @@
(defn render-components (defn render-components
[data] [data]
(let [;; Join all components objects into a single map
objects (->> (:components data)
(vals)
(map :objects)
(reduce conj))]
(rx/concat (rx/concat
(->> (rx/merge (->> (rx/merge
(populate-images-cache data) (populate-images-cache objects)
(populate-fonts-cache data)) (populate-fonts-cache objects))
(rx/ignore)) (rx/ignore))
(->> (rx/of data) (->> (rx/of data)
(rx/map (rx/map
(fn [data] (fn [data]
(let [elem (mf/element exports/components-sprite-svg #js {:data data :embed? true})] (let [elem (mf/element exports/components-sprite-svg #js {:data data :embed? true})]
(rds/renderToStaticMarkup elem))))))) (rds/renderToStaticMarkup elem))))))))