From 766368567e72b93516ebd039c8e72fb6f7c05ec7 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 20 Jul 2026 14:45:36 +0200 Subject: [PATCH] :bug: Ensure text position-data always includes :fills key (#10650) Position-data entries for text shapes could omit the :fills key when the element had no explicit fills, causing backend malli validation failures. - Use get-default-text-attrs as base in WASM calculate-position-data - Default fills when CSS --fills property is absent in DOM calc path AI-assisted-by: deepseek-v4-pro --- frontend/src/app/render_wasm/api.cljs | 2 +- frontend/src/app/util/text_svg_position.cljs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/render_wasm/api.cljs b/frontend/src/app/render_wasm/api.cljs index e0273d0125..a96353dea4 100644 --- a/frontend/src/app/render_wasm/api.cljs +++ b/frontend/src/app/render_wasm/api.cljs @@ -2557,7 +2557,7 @@ (when (and element element-text) (let [text (subs element-text start-pos end-pos)] (d/patch-object - txt/default-text-attrs + (txt/get-default-text-attrs) (d/without-nils {:x x :y (+ y height) diff --git a/frontend/src/app/util/text_svg_position.cljs b/frontend/src/app/util/text_svg_position.cljs index 6cfaa314e2..772a7f6b8a 100644 --- a/frontend/src/app/util/text_svg_position.cljs +++ b/frontend/src/app/util/text_svg_position.cljs @@ -9,6 +9,7 @@ [app.common.data :as d] [app.common.data.macros :as dm] [app.common.transit :as transit] + [app.common.types.text :as txt] [app.main.fonts :as fonts] [app.util.dom :as dom] [app.util.text-position-data :as tpd] @@ -105,7 +106,8 @@ :text-decoration (dm/str (get-prop styles "text-decoration")) :letter-spacing (dm/str (get-prop styles "letter-spacing")) :font-style (dm/str (get-prop styles "font-style")) - :fills (transit/decode-str (get-prop styles "--fills")) + :fills (or (transit/decode-str (get-prop styles "--fills")) + txt/default-text-fills) :text text})))] (when (some? shape-id)