diff --git a/src/uxbox/state/clipboard.cljs b/src/uxbox/state/clipboard.cljs new file mode 100644 index 000000000..8784acab7 --- /dev/null +++ b/src/uxbox/state/clipboard.cljs @@ -0,0 +1,16 @@ +(ns uxbox.state.clipboard) + +(defonce ^:private ^:const +max-items+ 5) + +(defn conj-item + [state item] + (if-let [project (get-in state [:workspace :project])] + (let [queue (get-in state [:clipboard project] #queue []) + queue (conj queue item)] + (assoc-in state [:clipboard project] + (if (> (count queue) +max-items+) + (pop queue) + queue))) + (do + (js/console.warn "no active project for manage clipboard.") + state))) diff --git a/src/uxbox/ui/workspace/clipboard.cljs b/src/uxbox/ui/workspace/clipboard.cljs index 6ea6f90c1..7284a113c 100644 --- a/src/uxbox/ui/workspace/clipboard.cljs +++ b/src/uxbox/ui/workspace/clipboard.cljs @@ -3,21 +3,6 @@ [uxbox.ui.mixins :as mx] [uxbox.ui.lightbox :as lightbox])) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; State -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(defonce ^:private state (atom #queue [])) -(defonce ^:private ^:const +max-items+ 5) - -(defn add - [item] - (swap! state (fn [v] - (let [v (conj v item)] - (if (> (count v) +max-items+) - (pop v) - v))))) - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Component ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;