From 0b4887ed969ae25e8247500099393acf192267a8 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Mon, 14 Sep 2020 13:14:13 +0200 Subject: [PATCH] :sparkles: Fixes picker for groups --- frontend/src/app/main/data/colors.cljs | 14 +++++++++--- .../src/app/main/ui/workspace/viewport.cljs | 22 +++++++++---------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/frontend/src/app/main/data/colors.cljs b/frontend/src/app/main/data/colors.cljs index 4947ab0fd..fe54eb651 100644 --- a/frontend/src/app/main/data/colors.cljs +++ b/frontend/src/app/main/data/colors.cljs @@ -22,7 +22,8 @@ [app.common.uuid :as uuid] [app.main.data.workspace.common :as dwc] [app.main.data.workspace.texts :as dwt] - [app.main.data.modal :as md])) + [app.main.data.modal :as md] + [app.common.pages-helpers :as cph])) (declare create-color-result) @@ -169,8 +170,11 @@ (ptk/reify ::change-fill-selected ptk/WatchEvent (watch [_ state s] - (let [ids (get-in state [:workspace-local :selected]) + (let [selected (get-in state [:workspace-local :selected]) objects (get-in state [:workspace-data :pages-index (:current-page-id state) :objects]) + children (mapcat #(cph/get-children % objects) selected) + ids (into selected children) + is-text? #(= :text (:type (get objects %))) text-ids (filter is-text? ids) shape-ids (filter (comp not is-text?) ids) @@ -188,7 +192,11 @@ (ptk/reify ::change-stroke-selected ptk/WatchEvent (watch [_ state s] - (let [ids (get-in state [:workspace-local :selected]) + (let [selected (get-in state [:workspace-local :selected]) + objects (get-in state [:workspace-data :pages-index (:current-page-id state) :objects]) + children (mapcat #(cph/get-children % objects) selected) + ids (into selected children) + update-fn (fn [s] (cond-> s true diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index c3c340d20..1511f2aa8 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -227,17 +227,17 @@ (mf/deps props fetch-pending) (fn [] (try - (timers/schedule - #(let [svg-node (mf/ref-val svg-ref) - canvas-node (mf/ref-val canvas-ref) - canvas-context (.getContext canvas-node "2d") - xml (.serializeToString (js/XMLSerializer.) svg-node) - content (str "data:image/svg+xml;base64," (js/btoa xml)) - img (js/Image.)] - (obj/set! img "onload" - (fn [] - (.drawImage canvas-context img 0 0))) - (obj/set! img "src" content))) + (let [canvas-node (mf/ref-val canvas-ref) + canvas-context (.getContext canvas-node "2d") + svg-node (mf/ref-val svg-ref)] + (timers/schedule + #(let [xml (.serializeToString (js/XMLSerializer.) svg-node) + content (str "data:image/svg+xml;base64," (js/btoa xml)) + img (js/Image.)] + (obj/set! img "onload" + (fn [] + (.drawImage canvas-context img 0 0))) + (obj/set! img "src" content)))) (catch :default e (.error js/console e))))) [:*