diff --git a/frontend/src/app/main/data/workspace/colors.cljs b/frontend/src/app/main/data/workspace/colors.cljs index 38cfe651ac..5856cec029 100644 --- a/frontend/src/app/main/data/workspace/colors.cljs +++ b/frontend/src/app/main/data/workspace/colors.cljs @@ -14,7 +14,7 @@ [app.common.types.fills :as types.fills] [app.common.types.library :as ctl] [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.main.broadcast :as mbc] [app.main.data.helpers :as dsh] @@ -406,30 +406,30 @@ (defn change-shadow [ids attrs index] - (ptk/reify ::change-shadow - ptk/WatchEvent - (watch [_ _ _] - (rx/of (dwsh/update-shapes - ids - (fn [shape] - (let [;; If we try to set a gradient to a shadow (for - ;; example using the color selection from - ;; multiple shapes) let's use the first stop - ;; color - attrs (cond-> attrs - (:gradient attrs) - (dm/get-in [:gradient :stops 0])) + (letfn [(update-shadow [shape] + (let [;; If we try to set a gradient to a shadow (for + ;; example using the color selection from + ;; multiple shapes) let's use the first stop + ;; color + attrs (cond-> attrs + (:gradient attrs) + (-> (dm/get-in [:gradient :stops 0]) + (select-keys types.shadow/color-attrs))) - attrs' (-> (dm/get-in shape [:shadow index :color]) - (merge attrs) - (d/without-nils))] - (assoc-in shape [:shadow index :color] attrs')))))))) + attrs' (-> (dm/get-in shape [:shadow index :color]) + (merge attrs) + (d/without-nils))] + (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 [ids shadow] (assert - (check-shadow shadow) + (types.shadow/check-shadow shadow) "expected a valid shadow struct") (assert @@ -1146,16 +1146,16 @@ (defn- shadow->color-attr "Given a stroke map enriched with :shape-id, :index, and optionally :has-token-applied / :token-name, returns a color attribute map. - + If :has-token-applied is true, adds token metadata to :attrs: {:has-token-applied true :token-name } - + Args: - stroke: map with stroke info, including :shape-id and :index - file-id: current file UUID - libraries: map of shared color libraries - + Returns: A map like: {:attrs {...color data...} @@ -1260,12 +1260,12 @@ will include extra attributes in its :attrs map: {:has-token-applied true :token-name } - + Args: - shapes: vector of shape maps - file-id: current file UUID - libraries: map of shared color libraries - + Returns: A vector of color attribute maps with metadata for each shape." [shapes file-id libraries]