From 18afb701fbfdd3fab086945fdc68f0267a5ec041 Mon Sep 17 00:00:00 2001 From: Eva Date: Thu, 5 May 2022 14:39:33 +0200 Subject: [PATCH] :bug: Fix apply color to groups from assets panel --- .../app/main/ui/workspace/sidebar/assets.cljs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs index 255148cde..b33d37360 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs @@ -33,6 +33,7 @@ [app.main.ui.context :as ctx] [app.main.ui.icons :as i] [app.main.ui.workspace.sidebar.options.menus.typography :refer [typography-entry]] + [app.util.color :as uc] [app.util.dom :as dom] [app.util.dom.dnd :as dnd] [app.util.i18n :as i18n :refer [tr]] @@ -802,10 +803,21 @@ ;; TODO: looks like the first argument is not necessary apply-color (fn [_ event] - (let [ids (wsh/lookup-selected @st/state)] + (let [objects (wsh/lookup-page-objects @st/state) + selected (->> (wsh/lookup-selected @st/state) + (cph/clean-loops objects)) + selected-obj (keep (d/getf objects) selected) + select-shapes-for-color (fn [shape objects] + (let [shapes (case (:type shape) + :group (cph/get-children objects (:id shape)) + [shape])] + (->> shapes + (remove cph/group-shape?) + (map :id)))) + ids (mapcat #(select-shapes-for-color % objects) selected-obj)] (if (kbd/alt? event) - (st/emit! (dc/change-stroke ids color 0)) - (st/emit! (dc/change-fill ids color 0))))) + (st/emit! (dc/change-stroke ids (merge uc/empty-color color) 0)) + (st/emit! (dc/change-fill ids (merge uc/empty-color color) 0))))) rename-color (fn [name]