diff --git a/exporter/src/app/renderer/bitmap.cljs b/exporter/src/app/renderer/bitmap.cljs index 32188b2d9a..69642cd244 100644 --- a/exporter/src/app/renderer/bitmap.cljs +++ b/exporter/src/app/renderer/bitmap.cljs @@ -58,9 +58,9 @@ (p/let [params {:file-id file-id :page-id page-id :share-id share-id + :embed true :object-id (mapv :id objects) :route "objects" - :render-embed true :skip-children skip-children :wasm (when is-wasm "true") :scale scale} diff --git a/exporter/src/app/renderer/svg.cljs b/exporter/src/app/renderer/svg.cljs index fdd9b7c0de..a39c26fa18 100644 --- a/exporter/src/app/renderer/svg.cljs +++ b/exporter/src/app/renderer/svg.cljs @@ -345,7 +345,7 @@ (p/let [params {:file-id file-id :page-id page-id :share-id share-id - :render-embed true + :embed true :object-id (mapv :id objects) :route "objects"} uri (-> (cf/get-internal-uri) diff --git a/frontend/src/app/render.cljs b/frontend/src/app/render.cljs index c94cd3b451..10bd70fd25 100644 --- a/frontend/src/app/render.cljs +++ b/frontend/src/app/render.cljs @@ -126,7 +126,7 @@ :skip-children skip-children}]])))))) (defn- fetch-objects-bundle - [& {:keys [file-id page-id share-id object-id] :as options}] + [& {:keys [file-id page-id share-id object-id embed?] :as options}] (ptk/reify ::fetch-objects-bundle ptk/WatchEvent (watch [_ state _] @@ -146,10 +146,16 @@ (rx/map (fn [objects] (render/adapt-objects-for-shape objects object-id))) (rx/merge-map (fn [objects] - (rx/concat - (->> (render/populate-images-cache objects) - (rx/ignore)) - (rx/of #(assoc % :objects objects)))))))))) + (if-not embed? + (rx/of #(assoc % :objects objects)) + + ;; Populate the images cache before rendering so + ;; data-uri substitutions are instantly available + ;; on the first paint. + (rx/concat + (->> (render/populate-images-cache objects) + (rx/ignore)) + (rx/of #(assoc % :objects objects))))))))))) (def ^:private schema:render-objects [:map {:title "render-objets"} @@ -157,7 +163,6 @@ [:file-id ::sm/uuid] [:share-id {:optional true} ::sm/uuid] [:embed {:optional true} :boolean] - [:render-embed {:optional true} :boolean] [:skip-children {:optional true} :boolean] [:object-id [:or [::sm/set ::sm/uuid] ::sm/uuid]]]) @@ -173,10 +178,13 @@ (defn- render-objects [params] (try - (let [{:keys [file-id page-id embed render-embed share-id object-id skip-children wasm scale] :as params} - (coerce-render-objects-params params) - embed (if (some? render-embed) render-embed embed)] - (st/emit! (fetch-objects-bundle :file-id file-id :page-id page-id :share-id share-id :object-id object-id)) + (let [{:keys [file-id page-id embed share-id object-id skip-children wasm scale] :as params} + (coerce-render-objects-params params)] + (st/emit! (fetch-objects-bundle :file-id file-id + :page-id page-id + :share-id share-id + :object-id object-id + :embed? embed)) (if (uuid? object-id) (mf/html [:& object-svg