diff --git a/src/uxbox/util/dom.cljs b/src/uxbox/util/dom.cljs index 46491c2b0c..87cf270f25 100644 --- a/src/uxbox/util/dom.cljs +++ b/src/uxbox/util/dom.cljs @@ -24,16 +24,3 @@ (defn event->target [e] (.-target e)) - -(defn event->data-transfer - [e] - (.-dataTransfer e)) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Drag & Drop helpers -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -;; (defn set-effect-allowed! -;; [e effect] -;; (let [dt (.-dataTransfer e)] -;; (set! diff --git a/src/uxbox/util/dom/dnd.cljs b/src/uxbox/util/dom/dnd.cljs new file mode 100644 index 0000000000..2ab91ab6a0 --- /dev/null +++ b/src/uxbox/util/dom/dnd.cljs @@ -0,0 +1,33 @@ +(ns uxbox.util.dom.dnd + "Drag & Drop interop helpers." + (:require [uxbox.util.data :refer (read-string)])) + +(defn event->data-transfer + [e] + (.-dataTransfer e)) + +(defn set-allowed-effect! + [e effect] + (let [dt (.-dataTransfer e)] + (set! (.-effectAllowed dt) effect) + e)) + +(defn set-drop-effect! + [e effect] + (let [dt (.-dataTransfer e)] + (set! (.-dropEffect dt) effect) + e)) + +(defn set-data! + ([e data] + (set-data! e "uxbox/data" data)) + ([e key data] + (let [dt (.-dataTransfer e)] + (.setData dt (str key) (pr-str data))))) + +(defn get-data + ([e] + (get-data e "uxbox/data")) + ([e key] + (let [dt (.-dataTransfer e)] + (read-string (.getData dt (str key))))))