From 5f49656e306b3eebdc142af3d257fac36399a474 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 7 Mar 2022 14:58:50 +0100 Subject: [PATCH 1/6] :sparkles: Add proper event tracing on nudge modal And :recycle: refactor data event handling, moving some logic from component to the event. --- backend/src/app/rpc/mutations/profile.clj | 3 +- backend/src/app/rpc/queries/profile.clj | 2 +- frontend/src/app/main/data/users.cljs | 15 ++++++++ frontend/src/app/main/data/workspace.cljs | 26 ++++++++++++- frontend/src/app/main/ui/workspace/nudge.cljs | 37 +++++++++---------- 5 files changed, 60 insertions(+), 23 deletions(-) diff --git a/backend/src/app/rpc/mutations/profile.clj b/backend/src/app/rpc/mutations/profile.clj index 07f3866b6f..85acbe863d 100644 --- a/backend/src/app/rpc/mutations/profile.clj +++ b/backend/src/app/rpc/mutations/profile.clj @@ -601,7 +601,8 @@ (db/update! conn :profile {:props (db/tjson props)} {:id profile-id}) - nil))) + + (profile/filter-profile-props props)))) ;; --- MUTATION: Delete Profile diff --git a/backend/src/app/rpc/queries/profile.clj b/backend/src/app/rpc/queries/profile.clj index c1ed702444..26b6276d27 100644 --- a/backend/src/app/rpc/queries/profile.clj +++ b/backend/src/app/rpc/queries/profile.clj @@ -75,7 +75,7 @@ [conn profile] (merge profile (retrieve-additional-data conn (:id profile)))) -(defn- filter-profile-props +(defn filter-profile-props [props] (into {} (filter (fn [[k _]] (simple-ident? k))) props)) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index f66c0af21a..1c44bf4a8d 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -385,6 +385,20 @@ (rx/empty))) (rx/ignore)))))) +(defn update-profile-props + [props] + (ptk/reify ::update-profile-props + ptk/UpdateEvent + (update [_ state] + (update-in state [:profile :props] merge props)) + + ;; TODO: for the release 1.13 we should skip fetching profile and just use + ;; the response value of update-profile-props RPC call + ptk/WatchEvent + (watch [_ state _] + (->> (rp/mutation :update-profile-props {:props props}) + (rx/map (constantly (fetch-profile))))))) + (defn mark-onboarding-as-viewed ([] (mark-onboarding-as-viewed nil)) ([{:keys [version]}] @@ -459,6 +473,7 @@ ptk/UpdateEvent (update [_ state] (update-in state [:profile :props] assoc :nudge value)) + ptk/WatchEvent (watch [_ _ _] (let [props {:nudge value}] diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 15c46bfdbc..b7889b470d 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -24,6 +24,7 @@ [app.config :as cfg] [app.main.data.events :as ev] [app.main.data.messages :as dm] + [app.main.data.users :as du] [app.main.data.workspace.bool :as dwb] [app.main.data.workspace.changes :as dch] [app.main.data.workspace.common :as dwc] @@ -438,8 +439,29 @@ ptk/UpdateEvent (update [_ state] (update state :workspace-layout - (fn [stored] - (reduce disj stored (d/concat-set flags))))))) + (fn [flags] + (disj flags flag)))))) + +;; --- Nudge + +(defn update-nudge + [{:keys [big small] :as params}] + (ptk/reify ::update-nudge + IDeref + (-deref [_] (d/without-nils params)) + + ptk/UpdateEvent + (update [_ state] + (update-in state [:profile :props :nudge] + (fn [nudge] + (cond-> nudge + (number? big) (assoc :big big) + (number? small) (assoc :small small))))) + + ptk/WatchEvent + (watch [_ state _] + (let [nudge (get-in state [:profile :props :nudge])] + (rx/of (du/update-profile-props {:nudge nudge})))))) ;; --- Set element options mode diff --git a/frontend/src/app/main/ui/workspace/nudge.cljs b/frontend/src/app/main/ui/workspace/nudge.cljs index c479a00bac..0909a7b842 100644 --- a/frontend/src/app/main/ui/workspace/nudge.cljs +++ b/frontend/src/app/main/ui/workspace/nudge.cljs @@ -7,7 +7,7 @@ (ns app.main.ui.workspace.nudge (:require [app.main.data.modal :as modal] - [app.main.data.users :as du] + [app.main.data.workspace :as dw] [app.main.refs :as refs] [app.main.store :as st] [app.main.ui.components.numeric-input :refer [numeric-input]] @@ -19,34 +19,33 @@ [rumext.alpha :as mf]) (:import goog.events.EventType)) +(defn- on-keydown + [event] + (when (k/enter? event) + (dom/prevent-default event) + (dom/stop-propagation event) + (modal/hide!))) (mf/defc nudge-modal {::mf/register modal/components ::mf/register-as :nudge-option} [] - (let [profile (mf/deref refs/profile) - nudge (get-in profile [:props :nudge] {:big 10 :small 1}) - update-nudge (fn [value size] (let [update-nudge (if (= :big size) - {:big value :small (:small nudge)} - {:small value :big (:big nudge)})] - (st/emit! (du/update-nudge update-nudge)))) - update-big (fn [value] (update-nudge value :big)) - update-small (fn [value] (update-nudge value :small)) - close #(modal/hide!)] + (let [profile (mf/deref refs/profile) + nudge (or (get-in profile [:props :nudge]) {:big 10 :small 1}) + update-big (mf/use-fn #(st/emit! (dw/update-nudge {:big %}))) + update-small (mf/use-fn #(st/emit! (dw/update-nudge {:small %}))) + on-close (mf/use-fn #(modal/hide!))] + (mf/with-effect - (letfn [(on-keydown [event] - (when (k/enter? event) - (dom/prevent-default event) - (dom/stop-propagation event) - (close)))] - (->> (events/listen js/document EventType.KEYDOWN on-keydown) - (partial events/unlistenByKey)))) + ;; (st/emit! (ptk/event ::ev/event {::ev/name "show-release-notes" :version version})) + (->> (events/listen js/document EventType.KEYDOWN on-keydown) + (partial events/unlistenByKey))) [:div.nudge-modal-overlay [:div.nudge-modal-container [:div.nudge-modal-header [:p.nudge-modal-title (tr "modals.nudge-title")] - [:button.modal-close-button {:on-click close} i/close]] + [:button.modal-close-button {:on-click on-close} i/close]] [:div.nudge-modal-body [:div.input-wrapper [:span @@ -59,4 +58,4 @@ [:p.nudge-subtitle (tr "modals.big-nudge")] [:> numeric-input {:min 1 :value (:big nudge) - :on-change update-big}]]]]]])) \ No newline at end of file + :on-change update-big}]]]]]])) From 6f32d721c2151dfdba9c62c0bda522ba0c89d286 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 7 Mar 2022 15:00:18 +0100 Subject: [PATCH 2/6] :paperclip: Minor changes on default values on devenv docker compose --- docker/devenv/docker-compose.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/devenv/docker-compose.yaml b/docker/devenv/docker-compose.yaml index 5b92d0ed4c..19d73cc478 100644 --- a/docker/devenv/docker-compose.yaml +++ b/docker/devenv/docker-compose.yaml @@ -52,7 +52,7 @@ services: - PENPOT_SMTP_PASSWORD= - PENPOT_SMTP_SSL=false - PENPOT_SMTP_TLS=false - - PENPOT_FLAGS="enable-cors enable-insecure-register enable-terms-and-privacy-checkbox" + - PENPOT_FLAGS="enable-cors enable-insecure-register enable-audit-log" # LDAP setup - PENPOT_LDAP_HOST=ldap @@ -119,7 +119,7 @@ services: - PENPOT_SMTP_PASSWORD= - PENPOT_SMTP_SSL=false - PENPOT_SMTP_TLS=false - - PENPOT_FLAGS="enable-cors" + - PENPOT_FLAGS="enable-cors enable-audit-log" # LDAP setup - PENPOT_LDAP_HOST=ldap From fdb65331495b13692a70ef231aa28134ff498db0 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 7 Mar 2022 15:01:12 +0100 Subject: [PATCH 3/6] :sparkles: Minor improvement on workspace flags and modal event tracing --- frontend/src/app/main/data/events.cljs | 7 +++- frontend/src/app/main/data/modal.cljs | 6 +++ frontend/src/app/main/data/workspace.cljs | 29 ++++++------- .../app/main/data/workspace/shortcuts.cljs | 28 ++++++++----- frontend/src/app/main/ui/workspace.cljs | 2 +- .../app/main/ui/workspace/context_menu.cljs | 9 ++-- .../src/app/main/ui/workspace/header.cljs | 41 +++++++++++-------- .../app/main/ui/workspace/left_toolbar.cljs | 30 +++++++------- .../src/app/main/ui/workspace/sidebar.cljs | 2 +- frontend/src/debug.cljs | 2 +- 10 files changed, 90 insertions(+), 66 deletions(-) diff --git a/frontend/src/app/main/data/events.cljs b/frontend/src/app/main/data/events.cljs index 547a74d509..5104d39fc8 100644 --- a/frontend/src/app/main/data/events.cljs +++ b/frontend/src/app/main/data/events.cljs @@ -110,7 +110,9 @@ (derive :app.main.data.workspace.persistence/set-file-shard ::generic-action) (derive :app.main.data.workspace/create-page ::generic-action) (derive :app.main.data.workspace/set-workspace-layout ::generic-action) - +(derive :app.main.data.workspace/toggle-layout-flag ::generic-action) +(derive :app.main.data.modal/show-modal ::generic-action) +(derive :app.main.data.workspace.guides/update-guides ::generic-action) (defmulti process-event ptk/type) (defmethod process-event :default [_] nil) @@ -141,7 +143,8 @@ {:type "action" :name (or (::name mdata) (name type)) - :props (merge data (d/without-nils (::props mdata))) + :props (merge (d/without-nils data) + (d/without-nils (::props mdata))) :context (d/without-nils {:event-origin (::origin mdata) :event-namespace (namespace type) diff --git a/frontend/src/app/main/data/modal.cljs b/frontend/src/app/main/data/modal.cljs index daf3bb1b45..b0a3baf67d 100644 --- a/frontend/src/app/main/data/modal.cljs +++ b/frontend/src/app/main/data/modal.cljs @@ -14,6 +14,8 @@ (defonce components (atom {})) +;; TODO: rename `:type` to `:name` + (defn show ([props] (show (uuid/next) (:type props) props)) @@ -21,6 +23,10 @@ (show (uuid/next) type props)) ([id type props] (ptk/reify ::show-modal + IDeref + (-deref [_] + (merge (dissoc props :type) {:name type})) + ptk/UpdateEvent (update [_ state] (assoc state ::modal {:id id diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index b7889b470d..7e683ebd16 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -417,25 +417,26 @@ ;; Workspace State Manipulation ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; --- Toggle layout flag +;; --- Layout Flags + +(defn toggle-layout-flag + [flag] + (ptk/reify ::toggle-layout-flag + IDeref + (-deref [this] + {:name flag}) -(defn toggle-layout-flags - [& flags] - (ptk/reify ::toggle-layout-flags ptk/UpdateEvent (update [_ state] (update state :workspace-layout - (fn [stored] - (reduce (fn [flags flag] - (if (contains? flags flag) - (disj flags flag) - (conj flags flag))) - stored - (d/concat-set flags))))))) + (fn [flags] + (if (contains? flags flag) + (disj flags flag) + (conj flags flag))))))) -(defn remove-layout-flags - [& flags] - (ptk/reify ::remove-layout-flags +(defn remove-layout-flag + [flag] + (ptk/reify ::remove-layout-flag ptk/UpdateEvent (update [_ state] (update state :workspace-layout diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index 64fcba6299..bb5a2539b8 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -6,6 +6,7 @@ (ns app.main.data.workspace.shortcuts (:require + [app.main.data.events :as ev] [app.main.data.shortcuts :as ds] [app.main.data.workspace :as dw] [app.main.data.workspace.colors :as mdc] @@ -24,6 +25,11 @@ ;; Shortcuts ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defn toggle-layout-flag + [flag] + (-> (dw/toggle-layout-flag flag) + (vary-meta assoc ::ev/origin "workspace-shortcuts"))) + ;; Shortcuts format https://github.com/ccampbell/mousetrap (def base-shortcuts @@ -42,18 +48,18 @@ :toggle-colorpalette {:tooltip (ds/alt "P") :command (ds/a-mod "p") :fn #(do (r/set-resize-type! :bottom) - (st/emit! (dw/remove-layout-flags :textpalette) - (dw/toggle-layout-flags :colorpalette)))} + (st/emit! (dw/remove-layout-flag :textpalette) + (toggle-layout-flag :colorpalette)))} :toggle-textpalette {:tooltip (ds/alt "T") :command (ds/a-mod "t") :fn #(do (r/set-resize-type! :bottom) - (st/emit! (dw/remove-layout-flags :colorpalette) - (dw/toggle-layout-flags :textpalette)))} + (st/emit! (dw/remove-layout-flag :colorpalette) + (toggle-layout-flag :textpalette)))} :toggle-rules {:tooltip (ds/meta-shift "R") :command (ds/c-mod "shift+r") - :fn #(st/emit! (dw/toggle-layout-flags :rules))} + :fn #(st/emit! (toggle-layout-flag :rules))} :select-all {:tooltip (ds/meta "A") :command (ds/c-mod "a") @@ -61,23 +67,23 @@ :toggle-grid {:tooltip (ds/meta "'") :command (ds/c-mod "'") - :fn #(st/emit! (dw/toggle-layout-flags :display-grid))} + :fn #(st/emit! (toggle-layout-flag :display-grid))} :toggle-snap-grid {:tooltip (ds/meta-shift "'") :command (ds/c-mod "shift+'") - :fn #(st/emit! (dw/toggle-layout-flags :snap-grid))} + :fn #(st/emit! (toggle-layout-flag :snap-grid))} :toggle-snap-guide {:tooltip (ds/meta-shift "G") :command (ds/c-mod "shift+G") - :fn #(st/emit! (dw/toggle-layout-flags :snap-guides))} + :fn #(st/emit! (toggle-layout-flag :snap-guides))} :toggle-alignment {:tooltip (ds/meta "\\") :command (ds/c-mod "\\") - :fn #(st/emit! (dw/toggle-layout-flags :dynamic-alignment))} + :fn #(st/emit! (toggle-layout-flag :dynamic-alignment))} :toggle-scale-text {:tooltip "K" :command "k" - :fn #(st/emit! (dw/toggle-layout-flags :scale-text))} + :fn #(st/emit! (toggle-layout-flag :scale-text))} :increase-zoom {:tooltip "+" :command ["+" "="] @@ -354,7 +360,7 @@ :hide-ui {:tooltip "\\" :command "\\" - :fn #(st/emit! (dw/toggle-layout-flags :hide-ui))} + :fn #(st/emit! (toggle-layout-flag :hide-ui))} }) diff --git a/frontend/src/app/main/ui/workspace.cljs b/frontend/src/app/main/ui/workspace.cljs index bf9f519c7a..e75944d02d 100644 --- a/frontend/src/app/main/ui/workspace.cljs +++ b/frontend/src/app/main/ui/workspace.cljs @@ -77,7 +77,7 @@ [:* [:& left-toolbar {:layout layout}] (if (:collapse-left-sidebar layout) - [:button.collapse-sidebar.collapsed {:on-click #(st/emit! (dw/toggle-layout-flags :collapse-left-sidebar))} + [:button.collapse-sidebar.collapsed {:on-click #(st/emit! (dw/toggle-layout-flag :collapse-left-sidebar))} i/arrow-slide] [:& left-sidebar {:layout layout}]) [:& right-sidebar {:section options-mode diff --git a/frontend/src/app/main/ui/workspace/context_menu.cljs b/frontend/src/app/main/ui/workspace/context_menu.cljs index f020dc1e4a..42d9206960 100644 --- a/frontend/src/app/main/ui/workspace/context_menu.cljs +++ b/frontend/src/app/main/ui/workspace/context_menu.cljs @@ -9,6 +9,7 @@ (:require [app.common.data :as d] [app.common.spec.page :as csp] + [app.main.data.events :as ev] [app.main.data.modal :as modal] [app.main.data.workspace :as dw] [app.main.data.workspace.interactions :as dwi] @@ -35,9 +36,6 @@ (dom/prevent-default event) (dom/stop-propagation event)) - - - (mf/defc menu-entry [{:keys [title shortcut on-click children selected? icon] :as props}] (let [submenu-ref (mf/use-ref nil) @@ -437,8 +435,9 @@ (mf/defc viewport-context-menu [] - (let [do-paste (st/emitf dw/paste) - do-hide-ui (st/emitf (dw/toggle-layout-flags :hide-ui))] + (let [do-paste #(st/emit! dw/paste) + do-hide-ui #(st/emit! (-> (dw/toggle-layout-flag :hide-ui) + (vary-meta assoc ::ev/origin "workspace-context-menu")))] [:* [:& menu-entry {:title (tr "workspace.shape.menu.paste") :shortcut (sc/get-tooltip :paste) diff --git a/frontend/src/app/main/ui/workspace/header.cljs b/frontend/src/app/main/ui/workspace/header.cljs index 91dbaae85a..81b2361407 100644 --- a/frontend/src/app/main/ui/workspace/header.cljs +++ b/frontend/src/app/main/ui/workspace/header.cljs @@ -206,7 +206,13 @@ (fn [item] (fn [event] (dom/stop-propagation event) - (reset! show-sub-menu? item))))] + (reset! show-sub-menu? item)))) + + toggle-flag + (mf/use-callback + (fn [flag] + (-> (dw/toggle-layout-flag flag) + (vary-meta assoc ::ev/origin "workspace-menu"))))] (mf/use-effect (mf/deps @editing?) @@ -275,7 +281,7 @@ [:li {:on-click #(st/emit! (dw/select-all))} [:span (tr "workspace.header.menu.select-all")] [:span.shortcut (sc/get-tooltip :select-all)]] - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :scale-text))} + [:li {:on-click #(st/emit! (toggle-flag :scale-text))} [:span (if (contains? layout :scale-text) (tr "workspace.header.menu.disable-scale-text") @@ -285,21 +291,22 @@ [:& dropdown {:show (= @show-sub-menu? :view) :on-close #(reset! show-sub-menu? false)} [:ul.sub-menu.view - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :rules))} + [:li {:on-click #(st/emit! (toggle-flag :rules))} [:span (if (contains? layout :rules) (tr "workspace.header.menu.hide-rules") (tr "workspace.header.menu.show-rules"))] [:span.shortcut (sc/get-tooltip :toggle-rules)]] - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :display-grid))} + [:li {:on-click #(st/emit! (toggle-flag :display-grid))} [:span (if (contains? layout :display-grid) (tr "workspace.header.menu.hide-grid") (tr "workspace.header.menu.show-grid"))] [:span.shortcut (sc/get-tooltip :toggle-grid)]] - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :sitemap :layers))} + [:li {:on-click #(st/emit! (toggle-flag :sitemap) + (toggle-flag :layers))} [:span (if (or (contains? layout :sitemap) (contains? layout :layers)) (tr "workspace.header.menu.hide-layers") @@ -308,8 +315,8 @@ [:li {:on-click (fn [] (r/set-resize-type! :bottom) - (st/emit! (dw/remove-layout-flags :textpalette) - (dw/toggle-layout-flags :colorpalette)))} + (st/emit! (dw/remove-layout-flag :textpalette) + (toggle-flag :colorpalette)))} [:span (if (contains? layout :colorpalette) (tr "workspace.header.menu.hide-palette") @@ -318,28 +325,29 @@ [:li {:on-click (fn [] (r/set-resize-type! :bottom) - (st/emit! (dw/remove-layout-flags :colorpalette) - (dw/toggle-layout-flags :textpalette)))} + (st/emit! (dw/remove-layout-flag :colorpalette) + (toggle-flag :textpalette)))} [:span (if (contains? layout :textpalette) (tr "workspace.header.menu.hide-textpalette") (tr "workspace.header.menu.show-textpalette"))] [:span.shortcut (sc/get-tooltip :toggle-textpalette)]] - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :assets))} + [:li {:on-click #(st/emit! (toggle-flag :assets))} [:span (if (contains? layout :assets) (tr "workspace.header.menu.hide-assets") (tr "workspace.header.menu.show-assets"))] [:span.shortcut (sc/get-tooltip :toggle-assets)]] - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :display-artboard-names))} + [:li {:on-click #(st/emit! (toggle-flag :display-artboard-names))} [:span (if (contains? layout :display-artboard-names) (tr "workspace.header.menu.hide-artboard-names") (tr "workspace.header.menu.show-artboard-names"))]] - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :hide-ui))} + [:li {:on-click #(st/emit! (-> (toggle-flag :hide-ui) + (vary-meta assoc ::ev/origin "workspace-menu")))} [:span (tr "workspace.shape.menu.hide-ui")] [:span.shortcut (sc/get-tooltip :hide-ui)]]]] @@ -347,21 +355,21 @@ [:& dropdown {:show (= @show-sub-menu? :preferences) :on-close #(reset! show-sub-menu? false)} [:ul.sub-menu.preferences - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :snap-guides))} + [:li {:on-click #(st/emit! (toggle-flag :snap-guides))} [:span (if (contains? layout :snap-guides) (tr "workspace.header.menu.disable-snap-guides") (tr "workspace.header.menu.enable-snap-guides"))] [:span.shortcut (sc/get-tooltip :toggle-snap-guide)]] - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :snap-grid))} + [:li {:on-click #(st/emit! (toggle-flag :snap-grid))} [:span (if (contains? layout :snap-grid) (tr "workspace.header.menu.disable-snap-grid") (tr "workspace.header.menu.enable-snap-grid"))] [:span.shortcut (sc/get-tooltip :toggle-snap-grid)]] - [:li {:on-click #(st/emit! (dw/toggle-layout-flags :dynamic-alignment))} + [:li {:on-click #(st/emit! (toggle-flag :dynamic-alignment))} [:span (if (contains? layout :dynamic-alignment) (tr "workspace.header.menu.disable-dynamic-alignment") @@ -410,7 +418,8 @@ [:button.document-history {:alt (tr "workspace.sidebar.history" (sc/get-tooltip :toggle-history)) :class (when (contains? layout :document-history) "selected") - :on-click (st/emitf (dw/toggle-layout-flags :document-history))} + :on-click #(st/emit! (-> (dw/toggle-layout-flag :document-history) + (vary-meta assoc ::ev/origin "workspace-header")))} i/recent]] [:div.options-section diff --git a/frontend/src/app/main/ui/workspace/left_toolbar.cljs b/frontend/src/app/main/ui/workspace/left_toolbar.cljs index dbddf07778..c9c4562af1 100644 --- a/frontend/src/app/main/ui/workspace/left_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/left_toolbar.cljs @@ -45,16 +45,16 @@ :position (gpt/point x y)}] (st/emit! (dw/upload-media-workspace params)))))] - [:li.tooltip.tooltip-right - {:alt (tr "workspace.toolbar.image" (sc/get-tooltip :insert-image)) - :on-click on-click} - [:* - i/image - [:& file-uploader {:input-id "image-upload" - :accept cm/str-image-types - :multi true - :ref ref - :on-selected on-files-selected}]]])) + [:li.tooltip.tooltip-right + {:alt (tr "workspace.toolbar.image" (sc/get-tooltip :insert-image)) + :on-click on-click} + [:* + i/image + [:& file-uploader {:input-id "image-upload" + :accept cm/str-image-types + :multi true + :ref ref + :on-selected on-files-selected}]]])) (mf/defc left-toolbar {::mf/wrap [mf/memo] @@ -124,15 +124,15 @@ :class (when (contains? layout :textpalette) "selected") :on-click (fn [] (r/set-resize-type! :bottom) - (st/emit! (dw/remove-layout-flags :colorpalette) - (dw/toggle-layout-flags :textpalette)))} + (st/emit! (dw/remove-layout-flag :colorpalette) + (dw/toggle-layout-flag :textpalette)))} "Ag"] - + [:li.tooltip.tooltip-right {:alt (tr "workspace.toolbar.color-palette" (sc/get-tooltip :toggle-colorpalette)) :class (when (contains? layout :colorpalette) "selected") :on-click (fn [] (r/set-resize-type! :bottom) - (st/emit! (dw/remove-layout-flags :textpalette) - (dw/toggle-layout-flags :colorpalette)))} + (st/emit! (dw/remove-layout-flag :textpalette) + (dw/toggle-layout-flag :colorpalette)))} i/palette]]]])) diff --git a/frontend/src/app/main/ui/workspace/sidebar.cljs b/frontend/src/app/main/ui/workspace/sidebar.cljs index 6173862014..1b77fd22a7 100644 --- a/frontend/src/app/main/ui/workspace/sidebar.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar.cljs @@ -36,7 +36,7 @@ handle-collapse (fn [] - (st/emit! (dw/toggle-layout-flags :collapse-left-sidebar)))] + (st/emit! (dw/toggle-layout-flag :collapse-left-sidebar)))] [:aside.settings-bar.settings-bar-left {:ref parent-ref :class (dom/classnames diff --git a/frontend/src/debug.cljs b/frontend/src/debug.cljs index 9c5cbbe07e..8e469a0d45 100644 --- a/frontend/src/debug.cljs +++ b/frontend/src/debug.cljs @@ -282,4 +282,4 @@ (defn ^:export hide-ui [] (st/emit! - (dw/toggle-layout-flags :hide-ui))) + (dw/toggle-layout-flag :hide-ui))) From 0158a933919cb20bde02169e63b3143cdfea172d Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 7 Mar 2022 15:06:41 +0100 Subject: [PATCH 4/6] :paperclip: Fix linter issues on staging branch --- frontend/src/app/main/data/users.cljs | 2 +- frontend/src/app/main/data/workspace.cljs | 3 +-- frontend/src/app/main/ui/releases.cljs | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index 1c44bf4a8d..4f970cfec5 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -395,7 +395,7 @@ ;; TODO: for the release 1.13 we should skip fetching profile and just use ;; the response value of update-profile-props RPC call ptk/WatchEvent - (watch [_ state _] + (watch [_ _ _] (->> (rp/mutation :update-profile-props {:props props}) (rx/map (constantly (fetch-profile))))))) diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 7e683ebd16..59bc76e2e5 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -423,8 +423,7 @@ [flag] (ptk/reify ::toggle-layout-flag IDeref - (-deref [this] - {:name flag}) + (-deref [_] {:name flag}) ptk/UpdateEvent (update [_ state] diff --git a/frontend/src/app/main/ui/releases.cljs b/frontend/src/app/main/ui/releases.cljs index c478f05dbb..8e56323206 100644 --- a/frontend/src/app/main/ui/releases.cljs +++ b/frontend/src/app/main/ui/releases.cljs @@ -10,9 +10,9 @@ [app.main.data.users :as du] [app.main.store :as st] [app.main.ui.releases.common :as rc] - [app.main.ui.releases.v1-12] - [app.main.ui.releases.v1-11] [app.main.ui.releases.v1-10] + [app.main.ui.releases.v1-11] + [app.main.ui.releases.v1-12] [app.main.ui.releases.v1-4] [app.main.ui.releases.v1-5] [app.main.ui.releases.v1-6] From 867669cc98c33810c760a2d58328f8fba105476a Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 7 Mar 2022 15:19:51 +0100 Subject: [PATCH 5/6] :sparkles: Add missing origin meta on left-toolbar events --- frontend/src/app/main/ui/workspace/left_toolbar.cljs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/left_toolbar.cljs b/frontend/src/app/main/ui/workspace/left_toolbar.cljs index c9c4562af1..71d94e95ec 100644 --- a/frontend/src/app/main/ui/workspace/left_toolbar.cljs +++ b/frontend/src/app/main/ui/workspace/left_toolbar.cljs @@ -9,6 +9,7 @@ [app.common.geom.point :as gpt] [app.common.math :as mth] [app.common.media :as cm] + [app.main.data.events :as ev] [app.main.data.workspace :as dw] [app.main.data.workspace.shortcuts :as sc] [app.main.refs :as refs] @@ -125,7 +126,8 @@ :on-click (fn [] (r/set-resize-type! :bottom) (st/emit! (dw/remove-layout-flag :colorpalette) - (dw/toggle-layout-flag :textpalette)))} + (-> (dw/toggle-layout-flag :textpalette) + (vary-meta assoc ::ev/origin "workspace-left-toolbar"))))} "Ag"] [:li.tooltip.tooltip-right @@ -134,5 +136,6 @@ :on-click (fn [] (r/set-resize-type! :bottom) (st/emit! (dw/remove-layout-flag :textpalette) - (dw/toggle-layout-flag :colorpalette)))} + (-> (dw/toggle-layout-flag :colorpalette) + (vary-meta assoc ::ev/origin "workspace-left-toolbar"))))} i/palette]]]])) From 18a67a80bcdec06b706dbca39f6407e2b881c758 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Mon, 7 Mar 2022 15:50:31 +0100 Subject: [PATCH 6/6] :fire: Remove unused code --- frontend/src/app/main/data/users.cljs | 15 --------------- frontend/src/app/main/ui/workspace/nudge.cljs | 1 - 2 files changed, 16 deletions(-) diff --git a/frontend/src/app/main/data/users.cljs b/frontend/src/app/main/data/users.cljs index 4f970cfec5..cda89444a2 100644 --- a/frontend/src/app/main/data/users.cljs +++ b/frontend/src/app/main/data/users.cljs @@ -465,21 +465,6 @@ (->> (rp/query :team-users {:team-id team-id}) (rx/map #(partial fetched %))))))) -;; --- Update Nudge - -(defn update-nudge - [value] - (ptk/reify ::update-nudge - ptk/UpdateEvent - (update [_ state] - (update-in state [:profile :props] assoc :nudge value)) - - ptk/WatchEvent - (watch [_ _ _] - (let [props {:nudge value}] - (->> (rp/mutation :update-profile-props {:props props}) - (rx/map (constantly (fetch-profile)))))))) - ;; --- EVENT: request-account-deletion (defn request-account-deletion diff --git a/frontend/src/app/main/ui/workspace/nudge.cljs b/frontend/src/app/main/ui/workspace/nudge.cljs index 0909a7b842..8574be2460 100644 --- a/frontend/src/app/main/ui/workspace/nudge.cljs +++ b/frontend/src/app/main/ui/workspace/nudge.cljs @@ -37,7 +37,6 @@ on-close (mf/use-fn #(modal/hide!))] (mf/with-effect - ;; (st/emit! (ptk/event ::ev/event {::ev/name "show-release-notes" :version version})) (->> (events/listen js/document EventType.KEYDOWN on-keydown) (partial events/unlistenByKey)))