From e4d4245b6cfbaa2d039ce500018d004d4a45c837 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 15 Apr 2021 15:30:04 +0200 Subject: [PATCH] :sparkles: Move data.colors under workspace namespace. --- frontend/src/app/main/data/shortcuts.cljs | 2 +- .../src/app/main/data/viewer/shortcuts.cljs | 2 +- frontend/src/app/main/data/workspace.cljs | 2 +- .../app/main/data/{ => workspace}/colors.cljs | 117 ++++++++---------- .../app/main/data/workspace/shortcuts.cljs | 2 +- .../app/main/ui/workspace/colorpalette.cljs | 2 +- .../app/main/ui/workspace/colorpicker.cljs | 2 +- .../workspace/colorpicker/color_inputs.cljs | 2 +- .../ui/workspace/colorpicker/gradients.cljs | 2 +- .../ui/workspace/colorpicker/harmony.cljs | 2 +- .../main/ui/workspace/colorpicker/hsva.cljs | 2 +- .../ui/workspace/colorpicker/libraries.cljs | 2 +- .../main/ui/workspace/colorpicker/ramp.cljs | 2 +- .../colorpicker/slider_selector.cljs | 2 +- .../app/main/ui/workspace/sidebar/assets.cljs | 2 +- .../workspace/sidebar/options/menus/fill.cljs | 2 +- .../sidebar/options/menus/stroke.cljs | 2 +- .../main/ui/workspace/viewport/gradients.cljs | 2 +- .../ui/workspace/viewport/pixel_overlay.cljs | 2 +- 19 files changed, 72 insertions(+), 81 deletions(-) rename frontend/src/app/main/data/{ => workspace}/colors.cljs (61%) diff --git a/frontend/src/app/main/data/shortcuts.cljs b/frontend/src/app/main/data/shortcuts.cljs index 05a04e42f..00701f830 100644 --- a/frontend/src/app/main/data/shortcuts.cljs +++ b/frontend/src/app/main/data/shortcuts.cljs @@ -6,7 +6,7 @@ (ns app.main.data.shortcuts (:require - [app.main.data.colors :as mdc] + [app.main.data.workspace.colors :as mdc] [app.main.data.workspace.transforms :as dwt] [app.main.store :as st] [app.util.dom :as dom] diff --git a/frontend/src/app/main/data/viewer/shortcuts.cljs b/frontend/src/app/main/data/viewer/shortcuts.cljs index af1243753..91ea3b300 100644 --- a/frontend/src/app/main/data/viewer/shortcuts.cljs +++ b/frontend/src/app/main/data/viewer/shortcuts.cljs @@ -7,7 +7,7 @@ (ns app.main.data.viewer.shortcuts (:require [app.config :as cfg] - [app.main.data.colors :as mdc] + [app.main.data.workspace.colors :as mdc] [app.main.data.shortcuts :as ds] [app.main.data.shortcuts :refer [c-mod]] [app.main.data.viewer :as dv] diff --git a/frontend/src/app/main/data/workspace.cljs b/frontend/src/app/main/data/workspace.cljs index 5b629986d..dbd7eca00 100644 --- a/frontend/src/app/main/data/workspace.cljs +++ b/frontend/src/app/main/data/workspace.cljs @@ -20,7 +20,7 @@ [app.common.uuid :as uuid] [app.config :as cfg] [app.main.constants :as c] - [app.main.data.colors :as mdc] + [app.main.data.workspace.colors :as mdc] [app.main.data.messages :as dm] [app.main.data.workspace.common :as dwc] [app.main.data.workspace.drawing :as dwd] diff --git a/frontend/src/app/main/data/colors.cljs b/frontend/src/app/main/data/workspace/colors.cljs similarity index 61% rename from frontend/src/app/main/data/colors.cljs rename to frontend/src/app/main/data/workspace/colors.cljs index a1b46b11c..6a27b8f92 100644 --- a/frontend/src/app/main/data/colors.cljs +++ b/frontend/src/app/main/data/workspace/colors.cljs @@ -4,7 +4,7 @@ ;; ;; Copyright (c) UXBOX Labs SL -(ns app.main.data.colors +(ns app.main.data.workspace.colors (:require [app.common.data :as d] [app.common.pages :as cp] @@ -38,8 +38,7 @@ (ptk/reify ::rename-color ptk/WatchEvent (watch [_ state stream] - (->> (rp/mutation! :rename-color {:id color-id - :name name}) + (->> (rp/mutation! :rename-color {:id color-id :name name}) (rx/map (partial rename-color-result file-id)))))) (defn rename-color-result @@ -101,8 +100,7 @@ ptk/UpdateEvent (update [_ state] (-> state - (update :workspace-local dissoc :picked-color-select) - (update :workspace-local dissoc :picked-shift?) + (update :workspace-local dissoc :picked-color-select :picked-shift?) (assoc-in [:workspace-local :picking-color?] false))))) (defn pick-color @@ -123,75 +121,68 @@ (assoc-in [:workspace-local :picked-shift?] shift?))))) (defn change-fill - ([ids color] - (ptk/reify ::change-fill - ptk/WatchEvent - (watch [_ state s] - (let [pid (:current-page-id state) - objects (get-in state [:workspace-data :pages-index pid :objects]) - not-frame (fn [shape-id] (not= (get-in objects [shape-id :type]) :frame)) - is-text? #(= :text (:type (get objects %))) - text-ids (filter is-text? ids) - shape-ids (filter (comp not is-text?) ids) + [ids color] + (ptk/reify ::change-fill + ptk/WatchEvent + (watch [_ state s] + (let [page-id (:current-page-id state) + objects (dwc/lookup-page-objects state page-id) - attrs (cond-> {} - (contains? color :color) - (assoc :fill-color (:color color)) + is-text? #(= :text (:type (get objects %))) + text-ids (filter is-text? ids) + shape-ids (filter (comp not is-text?) ids) - (contains? color :id) - (assoc :fill-color-ref-id (:id color)) + attrs (cond-> {} + (contains? color :color) + (assoc :fill-color (:color color)) - (contains? color :file-id) - (assoc :fill-color-ref-file (:file-id color)) + (contains? color :id) + (assoc :fill-color-ref-id (:id color)) - (contains? color :gradient) - (assoc :fill-color-gradient (:gradient color)) + (contains? color :file-id) + (assoc :fill-color-ref-file (:file-id color)) - (contains? color :opacity) - (assoc :fill-opacity (:opacity color))) + (contains? color :gradient) + (assoc :fill-color-gradient (:gradient color)) - update-fn (fn [shape] (merge shape attrs)) - editors (get-in state [:workspace-local :editors]) - reduce-fn (fn [state id] - (update-in state [:workspace-data :pages-index pid :objects id] update-fn))] + (contains? color :opacity) + (assoc :fill-opacity (:opacity color)))] - (rx/from (conj - (map #(dwt/update-text-attrs {:id % :editor (get editors %) :attrs attrs}) text-ids) - (dwc/update-shapes shape-ids update-fn)))))))) + (rx/concat + (rx/from (map #(dwt/update-text-attrs {:id % :attrs attrs}) text-ids)) + (rx/of (dwc/update-shapes shape-ids (fn [shape] (d/merge shape attrs))))))))) (defn change-stroke [ids color] (ptk/reify ::change-stroke ptk/WatchEvent (watch [_ state s] - (let [pid (:current-page-id state) - objects (get-in state [:workspace-data :pages-index pid :objects]) - not-frame (fn [shape-id] (not= (get-in objects [shape-id :type]) :frame)) + (let [page-id (:current-page-id state) + objects (dwc/lookup-page-objects state page-id) - color-attrs (cond-> {} - (contains? color :color) - (assoc :stroke-color (:color color)) + attrs (cond-> {} + (contains? color :color) + (assoc :stroke-color (:color color)) - (contains? color :id) - (assoc :stroke-color-ref-id (:id color)) + (contains? color :id) + (assoc :stroke-color-ref-id (:id color)) - (contains? color :file-id) - (assoc :stroke-color-ref-file (:file-id color)) + (contains? color :file-id) + (assoc :stroke-color-ref-file (:file-id color)) - (contains? color :gradient) - (assoc :stroke-color-gradient (:gradient color)) + (contains? color :gradient) + (assoc :stroke-color-gradient (:gradient color)) - (contains? color :opacity) - (assoc :stroke-opacity (:opacity color))) + (contains? color :opacity) + (assoc :stroke-opacity (:opacity color)))] + + (rx/of (dwc/update-shapes ids (fn [shape] + (cond-> (d/merge shape attrs) + (= (:stroke-style shape) :none) + (assoc :stroke-style :solid + :stroke-width 1 + :stroke-opacity 1))))))))) - update-fn (fn [shape] - (-> shape - (merge color-attrs) - (cond-> (= (:stroke-style s) :none) - (assoc :stroke-style :solid - :stroke-width 1 - :stroke-opacity 1))))] - (rx/of (dwc/update-shapes ids update-fn)))))) (defn picker-for-selected-shape [] @@ -199,15 +190,15 @@ (ptk/reify ::picker-for-selected-shape ptk/WatchEvent (watch [_ state stream] - (let [ids (get-in state [:workspace-local :selected]) - stop? (->> stream - (rx/filter (ptk/type? ::stop-picker))) + (let [ids (get-in state [:workspace-local :selected]) + stop? (rx/filter (ptk/type? ::stop-picker) stream) - update-events (fn [[color shift?]] - (rx/of (if shift? - (change-stroke ids color) - (change-fill ids color)) - (stop-picker)))] + update-events + (fn [[color shift?]] + (rx/of (if shift? + (change-stroke ids color) + (change-fill ids color)) + (stop-picker)))] (rx/merge ;; Stream that updates the stroke/width and stops if `esc` pressed (->> sub diff --git a/frontend/src/app/main/data/workspace/shortcuts.cljs b/frontend/src/app/main/data/workspace/shortcuts.cljs index f7dda4240..f87abcabd 100644 --- a/frontend/src/app/main/data/workspace/shortcuts.cljs +++ b/frontend/src/app/main/data/workspace/shortcuts.cljs @@ -7,7 +7,7 @@ (ns app.main.data.workspace.shortcuts (:require [app.config :as cfg] - [app.main.data.colors :as mdc] + [app.main.data.workspace.colors :as mdc] [app.main.data.shortcuts :as ds] [app.main.data.workspace :as dw] [app.main.data.workspace.common :as dwc] diff --git a/frontend/src/app/main/ui/workspace/colorpalette.cljs b/frontend/src/app/main/ui/workspace/colorpalette.cljs index dd0840608..d4a951f62 100644 --- a/frontend/src/app/main/ui/workspace/colorpalette.cljs +++ b/frontend/src/app/main/ui/workspace/colorpalette.cljs @@ -7,7 +7,7 @@ (ns app.main.ui.workspace.colorpalette (:require [app.common.math :as mth] - [app.main.data.colors :as mdc] + [app.main.data.workspace.colors :as mdc] [app.main.data.workspace :as udw] [app.main.refs :as refs] [app.main.store :as st] diff --git a/frontend/src/app/main/ui/workspace/colorpicker.cljs b/frontend/src/app/main/ui/workspace/colorpicker.cljs index 2e66abd72..f1ca966e0 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker.cljs +++ b/frontend/src/app/main/ui/workspace/colorpicker.cljs @@ -18,7 +18,7 @@ [app.main.store :as st] [app.main.refs :as refs] [app.main.data.workspace.libraries :as dwl] - [app.main.data.colors :as dc] + [app.main.data.workspace.colors :as dc] [app.main.data.modal :as modal] [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [t]] diff --git a/frontend/src/app/main/ui/workspace/colorpicker/color_inputs.cljs b/frontend/src/app/main/ui/workspace/colorpicker/color_inputs.cljs index c14778cf6..08a0ddd2d 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker/color_inputs.cljs +++ b/frontend/src/app/main/ui/workspace/colorpicker/color_inputs.cljs @@ -18,7 +18,7 @@ [app.main.store :as st] [app.main.refs :as refs] [app.main.data.workspace.libraries :as dwl] - [app.main.data.colors :as dc] + [app.main.data.workspace.colors :as dc] [app.main.data.modal :as modal] [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [t]])) diff --git a/frontend/src/app/main/ui/workspace/colorpicker/gradients.cljs b/frontend/src/app/main/ui/workspace/colorpicker/gradients.cljs index 27cf95e2f..447bfbbe7 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker/gradients.cljs +++ b/frontend/src/app/main/ui/workspace/colorpicker/gradients.cljs @@ -18,7 +18,7 @@ [app.main.store :as st] [app.main.refs :as refs] [app.main.data.workspace.libraries :as dwl] - [app.main.data.colors :as dc] + [app.main.data.workspace.colors :as dc] [app.main.data.modal :as modal] [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [t]])) diff --git a/frontend/src/app/main/ui/workspace/colorpicker/harmony.cljs b/frontend/src/app/main/ui/workspace/colorpicker/harmony.cljs index 3b33d9a22..d9b9f57a2 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker/harmony.cljs +++ b/frontend/src/app/main/ui/workspace/colorpicker/harmony.cljs @@ -18,7 +18,7 @@ [app.main.store :as st] [app.main.refs :as refs] [app.main.data.workspace.libraries :as dwl] - [app.main.data.colors :as dc] + [app.main.data.workspace.colors :as dc] [app.main.data.modal :as modal] [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [t]] diff --git a/frontend/src/app/main/ui/workspace/colorpicker/hsva.cljs b/frontend/src/app/main/ui/workspace/colorpicker/hsva.cljs index 98271f0dd..0e5e9b8bb 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker/hsva.cljs +++ b/frontend/src/app/main/ui/workspace/colorpicker/hsva.cljs @@ -18,7 +18,7 @@ [app.main.store :as st] [app.main.refs :as refs] [app.main.data.workspace.libraries :as dwl] - [app.main.data.colors :as dc] + [app.main.data.workspace.colors :as dc] [app.main.data.modal :as modal] [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [t]] diff --git a/frontend/src/app/main/ui/workspace/colorpicker/libraries.cljs b/frontend/src/app/main/ui/workspace/colorpicker/libraries.cljs index 8dd45e186..c866a08e1 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker/libraries.cljs +++ b/frontend/src/app/main/ui/workspace/colorpicker/libraries.cljs @@ -18,7 +18,7 @@ [app.main.store :as st] [app.main.refs :as refs] [app.main.data.workspace.libraries :as dwl] - [app.main.data.colors :as dc] + [app.main.data.workspace.colors :as dc] [app.main.data.modal :as modal] [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [t]] diff --git a/frontend/src/app/main/ui/workspace/colorpicker/ramp.cljs b/frontend/src/app/main/ui/workspace/colorpicker/ramp.cljs index 7b7d28d55..23bb4f413 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker/ramp.cljs +++ b/frontend/src/app/main/ui/workspace/colorpicker/ramp.cljs @@ -18,7 +18,7 @@ [app.main.store :as st] [app.main.refs :as refs] [app.main.data.workspace.libraries :as dwl] - [app.main.data.colors :as dc] + [app.main.data.workspace.colors :as dc] [app.main.data.modal :as modal] [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [t]] diff --git a/frontend/src/app/main/ui/workspace/colorpicker/slider_selector.cljs b/frontend/src/app/main/ui/workspace/colorpicker/slider_selector.cljs index c76fb8bdc..0c3a8e1da 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker/slider_selector.cljs +++ b/frontend/src/app/main/ui/workspace/colorpicker/slider_selector.cljs @@ -18,7 +18,7 @@ [app.main.store :as st] [app.main.refs :as refs] [app.main.data.workspace.libraries :as dwl] - [app.main.data.colors :as dc] + [app.main.data.workspace.colors :as dc] [app.main.data.modal :as modal] [app.main.ui.icons :as i] [app.util.i18n :as i18n :refer [t]])) diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs index 24cb1d1fc..279b66300 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs @@ -15,7 +15,7 @@ [app.common.text :as txt] [app.common.uuid :as uuid] [app.config :as cfg] - [app.main.data.colors :as dc] + [app.main.data.workspace.colors :as dc] [app.main.data.modal :as modal] [app.main.data.workspace :as dw] [app.main.data.workspace.common :as dwc] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/fill.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/fill.cljs index e61035935..b70447603 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/fill.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/fill.cljs @@ -7,7 +7,7 @@ (ns app.main.ui.workspace.sidebar.options.menus.fill (:require [app.common.pages :as cp] - [app.main.data.colors :as dc] + [app.main.data.workspace.colors :as dc] [app.main.data.workspace.common :as dwc] [app.main.data.workspace.texts :as dwt] [app.main.refs :as refs] diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs index 6a56ec363..002a6a7bc 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/menus/stroke.cljs @@ -11,7 +11,7 @@ [app.common.data :as d] [app.common.math :as math] [app.main.data.workspace.common :as dwc] - [app.main.data.colors :as dc] + [app.main.data.workspace.colors :as dc] [app.main.store :as st] [app.main.ui.icons :as i] [app.main.ui.workspace.sidebar.options.rows.color-row :refer [color-row]] diff --git a/frontend/src/app/main/ui/workspace/viewport/gradients.cljs b/frontend/src/app/main/ui/workspace/viewport/gradients.cljs index 633679725..380c96f77 100644 --- a/frontend/src/app/main/ui/workspace/viewport/gradients.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/gradients.cljs @@ -21,7 +21,7 @@ [app.main.streams :as ms] [app.main.data.modal :as modal] [app.main.data.workspace.common :as dwc] - [app.main.data.colors :as dc])) + [app.main.data.workspace.colors :as dc])) (def gradient-line-stroke-width 2) (def gradient-line-stroke-color "white") diff --git a/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs b/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs index 95aba3048..ab46aeb73 100644 --- a/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/pixel_overlay.cljs @@ -7,7 +7,7 @@ (ns app.main.ui.workspace.viewport.pixel-overlay (:require [app.common.uuid :as uuid] - [app.main.data.colors :as dwc] + [app.main.data.workspace.colors :as dwc] [app.main.data.modal :as modal] [app.main.refs :as refs] [app.main.store :as st]