Merge pull request #7972 from penpot/niwinz-staging-bugfix-7

🐛 Fix exception on assinging gradient to shadow on multiple selection
This commit is contained in:
Alejandro Alonso 2025-12-12 13:42:39 +01:00 committed by GitHub
commit f67f1a6a0e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -14,7 +14,7 @@
[app.common.types.fills :as types.fills] [app.common.types.fills :as types.fills]
[app.common.types.library :as ctl] [app.common.types.library :as ctl]
[app.common.types.shape :as shp] [app.common.types.shape :as shp]
[app.common.types.shape.shadow :refer [check-shadow]] [app.common.types.shape.shadow :as types.shadow]
[app.common.types.text :as txt] [app.common.types.text :as txt]
[app.main.broadcast :as mbc] [app.main.broadcast :as mbc]
[app.main.data.helpers :as dsh] [app.main.data.helpers :as dsh]
@ -406,30 +406,30 @@
(defn change-shadow (defn change-shadow
[ids attrs index] [ids attrs index]
(ptk/reify ::change-shadow (letfn [(update-shadow [shape]
ptk/WatchEvent (let [;; If we try to set a gradient to a shadow (for
(watch [_ _ _] ;; example using the color selection from
(rx/of (dwsh/update-shapes ;; multiple shapes) let's use the first stop
ids ;; color
(fn [shape] attrs (cond-> attrs
(let [;; If we try to set a gradient to a shadow (for (:gradient attrs)
;; example using the color selection from (-> (dm/get-in [:gradient :stops 0])
;; multiple shapes) let's use the first stop (select-keys types.shadow/color-attrs)))
;; color
attrs (cond-> attrs
(:gradient attrs)
(dm/get-in [:gradient :stops 0]))
attrs' (-> (dm/get-in shape [:shadow index :color]) attrs' (-> (dm/get-in shape [:shadow index :color])
(merge attrs) (merge attrs)
(d/without-nils))] (d/without-nils))]
(assoc-in shape [:shadow index :color] attrs')))))))) (assoc-in shape [:shadow index :color] attrs')))]
(ptk/reify ::change-shadow
ptk/WatchEvent
(watch [_ _ _]
(rx/of (dwsh/update-shapes ids update-shadow))))))
(defn add-shadow (defn add-shadow
[ids shadow] [ids shadow]
(assert (assert
(check-shadow shadow) (types.shadow/check-shadow shadow)
"expected a valid shadow struct") "expected a valid shadow struct")
(assert (assert