From 33d70f0e45cf5d1644ac65fc2fcee75666fdf8cd Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Fri, 21 Nov 2025 12:07:01 +0100 Subject: [PATCH] :bug: Fix problem with text data serialization --- frontend/src/app/render_wasm/api/fonts.cljs | 11 +++++++++++ frontend/src/app/render_wasm/api/texts.cljs | 11 ++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/render_wasm/api/fonts.cljs b/frontend/src/app/render_wasm/api/fonts.cljs index efbbca5cc8..d9d9324c1e 100644 --- a/frontend/src/app/render_wasm/api/fonts.cljs +++ b/frontend/src/app/render_wasm/api/fonts.cljs @@ -25,6 +25,8 @@ (def ^:private fonts (l/derived :fonts st/state)) +(def ^:private default-font-size 14) + (defn- google-font-id->uuid [font-id] (let [font (fonts/get-font-data font-id)] @@ -182,6 +184,15 @@ (catch :default _e uuid/zero))) +(defn serialize-font-size + [font-size] + (cond + (number? font-size) + font-size + + (string? font-size) + (or (d/parse-double font-size) default-font-size))) + (defn serialize-font-weight [font-weight] (if (number? font-weight) diff --git a/frontend/src/app/render_wasm/api/texts.cljs b/frontend/src/app/render_wasm/api/texts.cljs index b2698bf39b..02ded78242 100644 --- a/frontend/src/app/render_wasm/api/texts.cljs +++ b/frontend/src/app/render_wasm/api/texts.cljs @@ -56,7 +56,9 @@ text-decoration (sr/translate-text-decoration (get paragraph :text-decoration)) text-transform (sr/translate-text-transform (get paragraph :text-transform)) line-height (get paragraph :line-height 1.2) - letter-spacing (get paragraph :letter-spacing)] + line-height (if (not (number? line-height)) 1.2 line-height) + letter-spacing (get paragraph :letter-spacing) + letter-spacing (if (not (number? letter-spacing)) 0.0 letter-spacing)] (-> offset (mem/write-u8 dview text-align) @@ -77,10 +79,17 @@ (reduce (fn [offset span] (let [font-style (sr/translate-font-style (get span :font-style "normal")) font-size (get span :font-size paragraph-font-size) + font-size (f/serialize-font-size font-size) + line-height (get span :line-height paragraph-line-height) + line-height (if (not (number? line-height)) 1.2 line-height) + letter-spacing (get span :letter-spacing 0.0) + letter-spacing (if (not (number? letter-spacing)) 0.0 letter-spacing) + font-weight (get span :font-weight paragraph-font-weight) font-weight (f/serialize-font-weight font-weight) + font-id (f/normalize-font-id (get span :font-id "sourcesanspro")) font-family (hash (get span :font-family "sourcesanspro"))