From 4961991e18c021f337f3f6d3d075c885828fdd8a Mon Sep 17 00:00:00 2001
From: Eva <eva.marco@kaleidos.net>
Date: Wed, 21 Sep 2022 13:20:39 +0200
Subject: [PATCH] :bug: Fix gradient colors in recents

---
 frontend/src/app/main/data/workspace/colors.cljs    | 10 ++++++++--
 frontend/src/app/main/ui/workspace/colorpicker.cljs |  4 +---
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/frontend/src/app/main/data/workspace/colors.cljs b/frontend/src/app/main/data/workspace/colors.cljs
index e6915bf1d..220567307 100644
--- a/frontend/src/app/main/data/workspace/colors.cljs
+++ b/frontend/src/app/main/data/workspace/colors.cljs
@@ -13,6 +13,7 @@
    [app.main.data.modal :as md]
    [app.main.data.workspace.changes :as dch]
    [app.main.data.workspace.layout :as layout]
+   [app.main.data.workspace.libraries :as dwl]
    [app.main.data.workspace.state-helpers :as wsh]
    [app.main.data.workspace.texts :as dwt]
    [app.util.color :as uc]
@@ -487,7 +488,7 @@
                         (dissoc :stops)))))))))
 
 (defn update-colorpicker-color
-  [changes]
+  [changes add-recent?]
   (ptk/reify ::update-colorpicker-color
     ptk/UpdateEvent
     (update [_ state]
@@ -502,7 +503,12 @@
                                                                    (materialize-color-components))))
                     (-> state
                         (assoc :type :color)
-                        (dissoc :gradient :stops :editing-stop)))))))))
+                        (dissoc :gradient :stops :editing-stop)))))))
+    ptk/WatchEvent
+    (watch [_ state _]
+      (when add-recent?
+        (let [formated-color  (get-color-from-colorpicker-state (:colorpicker state))]
+          (rx/of (dwl/add-recent-color formated-color)))))))
 
 (defn update-colorpicker-gradient
   [changes]
diff --git a/frontend/src/app/main/ui/workspace/colorpicker.cljs b/frontend/src/app/main/ui/workspace/colorpicker.cljs
index bf15bcb36..54d69318e 100644
--- a/frontend/src/app/main/ui/workspace/colorpicker.cljs
+++ b/frontend/src/app/main/ui/workspace/colorpicker.cljs
@@ -69,9 +69,7 @@
          (fn [color]
            (let [recent-color (merge current-color color)
                  recent-color (dc/materialize-color-components recent-color)]
-             (when (not @drag?)
-               (st/emit! (dwl/add-recent-color recent-color)))
-             (st/emit! (dc/update-colorpicker-color color)))))
+             (st/emit! (dc/update-colorpicker-color recent-color (not @drag?))))))
 
         handle-click-picker
         (mf/use-fn