Merge pull request #8161 from penpot/superalex-fix-editing-text-doesnt-update-layer-name

🐛 Bug: Editing the text inside a text object doesn’t update the text layer name.
This commit is contained in:
Elena Torró 2026-01-22 17:40:32 +01:00 committed by GitHub
commit 9991901ed8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -90,7 +90,8 @@
instance instance
(dwt/create-editor editor-node canvas-node options) (dwt/create-editor editor-node canvas-node options)
update-name? (nil? content) ;; Store original content to compare name later
original-content content
on-key-up on-key-up
(fn [event] (fn [event]
@ -101,10 +102,22 @@
on-blur on-blur
(fn [] (fn []
(when-let [content (content/dom->cljs (dwt/get-editor-root instance))] (when-let [content (content/dom->cljs (dwt/get-editor-root instance))]
(st/emit! (dwt/v2-update-text-shape-content shape-id content (let [state @st/state
:update-name? update-name? objects (dsh/lookup-page-objects state)
:name (gen-name instance) shape (get objects shape-id)
:finalize? true))) current-name (:name shape)
generated-name (gen-name instance)
;; Update name if: (1) it's a new shape (nil original content), or
;; (2) the current name matches the generated name from original content
;; (meaning it was never manually renamed)
update-name? (or (nil? original-content)
(and (some? current-name)
(some? original-content)
(= current-name (txt/generate-shape-name (txt/content->text original-content)))))]
(st/emit! (dwt/v2-update-text-shape-content shape-id content
:update-name? update-name?
:name generated-name
:finalize? true))))
(let [container-node (mf/ref-val container-ref)] (let [container-node (mf/ref-val container-ref)]
(dom/set-style! container-node "opacity" 0))) (dom/set-style! container-node "opacity" 0)))