From 786513863b887278be75fa724486810b687de0ba Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 12 Mar 2024 11:55:40 +0100 Subject: [PATCH 1/2] :bug: Fix problem with duplicate in main component --- common/src/app/common/types/component.cljc | 10 ++++++++++ frontend/src/app/main/data/workspace/selection.cljs | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/common/src/app/common/types/component.cljc b/common/src/app/common/types/component.cljc index 70b030eaf..205454d71 100644 --- a/common/src/app/common/types/component.cljc +++ b/common/src/app/common/types/component.cljc @@ -240,3 +240,13 @@ (distinct) (filter #(not (eq % (get comp1 %) (get comp2 %)))) set))) + +(defn allow-duplicate? + [objects shape] + + (let [parent (get objects (:parent-id shape))] + ;; We don't want to change the structure of component copies + (and (not (in-component-copy-not-head? shape)) + ;; Non instance, non copy. We allow + (or (not (instance-head? shape)) + (not (in-component-copy? parent)))))) diff --git a/frontend/src/app/main/data/workspace/selection.cljs b/frontend/src/app/main/data/workspace/selection.cljs index 15d3d5ab4..eb5e9e168 100644 --- a/frontend/src/app/main/data/workspace/selection.cljs +++ b/frontend/src/app/main/data/workspace/selection.cljs @@ -709,8 +709,8 @@ (let [page (wsh/lookup-page state) objects (:objects page) selected (->> (wsh/lookup-selected state) - (map #(get objects %)) - (remove #(ctk/in-component-copy-not-root? %)) ;; We don't want to change the structure of component copies + (map (d/getf objects)) + (filter #(ctk/allow-duplicate? objects %)) (map :id) set)] (when (seq selected) From 8128171d8e2eb5289605b555c6245ff4bd5c08c5 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Tue, 12 Mar 2024 17:34:24 +0100 Subject: [PATCH 2/2] :bug: Fix problem with complementary colors slider in picker --- .../app/main/ui/workspace/colorpicker/harmony.cljs | 14 +++++++++++--- .../ui/workspace/colorpicker/slider_selector.scss | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/colorpicker/harmony.cljs b/frontend/src/app/main/ui/workspace/colorpicker/harmony.cljs index 7ca720bd2..361a51f7e 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker/harmony.cljs +++ b/frontend/src/app/main/ui/workspace/colorpicker/harmony.cljs @@ -8,6 +8,7 @@ (:require-macros [app.main.style :as stl]) (:require [app.common.colors :as cc] + [app.common.data.macros :as dm] [app.common.geom.point :as gpt] [app.common.math :as mth] [app.main.ui.workspace.colorpicker.slider-selector :refer [slider-selector]] @@ -118,17 +119,24 @@ :h new-hue :s saturation}))) - on-change-opacity (fn [new-alpha] (on-change {:alpha new-alpha}))] + on-change-opacity (fn [new-alpha] (on-change {:alpha new-alpha})) + + ;; This colors are to display the value slider + [h1 s1 l1] (cc/hsv->hsl [hue saturation 0]) + [h2 s2 l2] (cc/hsv->hsl [hue saturation 255])] (mf/use-effect (mf/deps canvas-ref) (fn [] (when canvas-ref (create-color-wheel (mf/ref-val canvas-ref))))) - [:div {:class (stl/css :harmony-selector)} + + [:div {:class (stl/css :harmony-selector) + :style {"--hue-from" (dm/str "hsl(" h1 ", " (* s1 100) "%, " (* l1 100) "%)") + "--hue-to" (dm/str "hsl(" h2 ", " (* s2 100) "%, " (* l2 100) "%)")}} [:div {:class (stl/css :handlers-wrapper)} [:& slider-selector {:type :value :vertical? true - :reverse? true + :reverse? false :value value :max-value 255 :vertical true diff --git a/frontend/src/app/main/ui/workspace/colorpicker/slider_selector.scss b/frontend/src/app/main/ui/workspace/colorpicker/slider_selector.scss index 3e30ad7ea..7de62cbef 100644 --- a/frontend/src/app/main/ui/workspace/colorpicker/slider_selector.scss +++ b/frontend/src/app/main/ui/workspace/colorpicker/slider_selector.scss @@ -107,7 +107,7 @@ } .slider-selector.value { - background: linear-gradient(var(--gradient-direction), #000 0%, #fff 100%); + background: linear-gradient(var(--gradient-direction), var(--hue-from, #000) 0%, var(--hue-to, #fff) 100%); } .slider-selector.saturation { background: linear-gradient(