From 8eaf93f08a3931caaa91f170aede2d0c1cb02082 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 28 Feb 2024 16:08:02 +0100 Subject: [PATCH] :sparkles: Add audit events for shape layout creation --- .../app/main/data/workspace/shape_layout.cljs | 23 ++++++++++++------- .../app/main/data/workspace/shortcuts.cljs | 9 +++++--- .../options/menus/layout_container.cljs | 5 +++- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/frontend/src/app/main/data/workspace/shape_layout.cljs b/frontend/src/app/main/data/workspace/shape_layout.cljs index cc29ceca6..94983d0de 100644 --- a/frontend/src/app/main/data/workspace/shape_layout.cljs +++ b/frontend/src/app/main/data/workspace/shape_layout.cljs @@ -19,6 +19,7 @@ [app.common.types.modifiers :as ctm] [app.common.types.shape.layout :as ctl] [app.common.uuid :as uuid] + [app.main.data.events :as ev] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.colors :as cl] [app.main.data.workspace.grid-layout.editor :as dwge] @@ -192,7 +193,7 @@ (defn remove-layout [ids] - (ptk/reify ::remove-layout + (ptk/reify ::remove-shape-layout ptk/WatchEvent (watch [_ _ _] (let [undo-id (js/Symbol)] @@ -204,7 +205,11 @@ (defn create-layout [type] - (ptk/reify ::create-layout + (ptk/reify ::create-shape-layout + ev/Event + (-data [_] + {:layout (name type)}) + ptk/WatchEvent (watch [_ state _] (let [page-id (:current-page-id state) @@ -224,19 +229,21 @@ (defn toggle-layout [type] - (ptk/reify ::toggle-layout-flex + (ptk/reify ::toggle-shape-layout ptk/WatchEvent - (watch [_ state _] + (watch [it state _] (let [objects (wsh/lookup-page-objects state) selected (wsh/lookup-selected state) selected-shapes (map (d/getf objects) selected) single? (= (count selected-shapes) 1) - has-layout? (and single? (ctl/any-layout? objects (:id (first selected-shapes))))] + has-layout? (and single? + (ctl/any-layout? objects (:id (first selected-shapes))))] (when (not= 0 (count selected)) - (if has-layout? - (rx/of (remove-layout selected)) - (rx/of (create-layout type)))))))) + (let [event (if has-layout? + (remove-layout selected) + (create-layout type))] + (rx/of (with-meta event (meta it))))))))) (defn update-layout [ids changes] diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index 73799a8a5..834449ab7 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -222,13 +222,16 @@ :toggle-layout-flex {:tooltip (ds/shift "A") :command "shift+a" :subsections [:modify-layers] - :fn #(emit-when-no-readonly (dwsl/toggle-layout :flex))} + :fn #(emit-when-no-readonly + (with-meta (dwsl/toggle-layout :flex) + {::ev/origin "workspace:shortcuts"}))} :toggle-layout-grid {:tooltip (ds/meta-shift "A") :command (ds/c-mod "shift+a") :subsections [:modify-layers] - :fn #(emit-when-no-readonly (dwsl/toggle-layout :grid))} - + :fn #(emit-when-no-readonly + (with-meta (dwsl/toggle-layout :grid) + {::ev/origin "workspace:shortcuts"}))} ;; TOOLS :draw-frame {:tooltip "B" diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs index abe2dbdd7..9cad839b3 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/layout_container.cljs @@ -12,6 +12,7 @@ [app.common.math :as mth] [app.common.types.shape.layout :as ctl] [app.config :as cf] + [app.main.data.events :as-alias ev] [app.main.data.workspace :as udw] [app.main.data.workspace.grid-layout.editor :as dwge] [app.main.data.workspace.shape-layout :as dwsl] @@ -855,7 +856,9 @@ (let [type (-> (dom/get-current-target event) (dom/get-data "type") (keyword))] - (st/emit! (dwsl/create-layout type)) + (st/emit! (with-meta (dwsl/create-layout type) + {::ev/origin "workspace:sidebar"})) + (reset! open* true)))) on-remove-layout