This repository was archived by the owner on Oct 4, 2020. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Original file line number Diff line number Diff line change @@ -25,3 +25,17 @@ exports.setDataImpl = function (format) {
2525 } ;
2626 } ;
2727} ;
28+
29+ exports . dropEffectImpl = function ( dataTransfer ) {
30+ return function ( ) {
31+ return dataTransfer . dropEffect ;
32+ } ;
33+ } ;
34+
35+ exports . setDropEffectImpl = function ( e ) {
36+ return function ( dataTransfer ) {
37+ return function ( ) {
38+ dataTransfer . dropEffect = e ;
39+ } ;
40+ } ;
41+ } ;
Original file line number Diff line number Diff line change @@ -4,15 +4,20 @@ module DOM.HTML.Event.DataTransfer
44 , types
55 , getData
66 , setData
7+ , DropEffect (..)
8+ , dropEffect
9+ , setDropEffect
710 ) where
811
912import Prelude
13+
1014import Control.Monad.Eff (Eff )
1115import DOM (DOM )
1216import DOM.File.Types (FileList )
1317import Data.Maybe (Maybe )
1418import Data.MediaType (MediaType (..))
1519import Data.Nullable (Nullable , toMaybe )
20+ import Partial.Unsafe (unsafePartialBecause )
1621
1722foreign import data DataTransfer :: Type
1823
@@ -61,3 +66,27 @@ setData
6166 -> DataTransfer
6267 -> Eff (dom :: DOM | eff ) Unit
6368setData (MediaType format) dat dt = setDataImpl format dat dt
69+
70+ foreign import dropEffectImpl :: forall eff . DataTransfer -> Eff (dom :: DOM | eff ) String
71+
72+ data DropEffect = None | Copy | Move | Link
73+
74+ -- | Gets the data transfer object's drop effect.
75+ dropEffect :: forall eff . DataTransfer -> Eff (dom :: DOM | eff ) DropEffect
76+ dropEffect dt = do
77+ de <- dropEffectImpl dt
78+ pure $ unsafePartialBecause " No other values are possible https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/dropEffect" case de of
79+ " copy" -> Copy
80+ " move" -> Move
81+ " link" -> Link
82+ " none" -> None
83+
84+ foreign import setDropEffectImpl :: forall eff . String -> DataTransfer -> Eff (dom :: DOM | eff ) Unit
85+
86+ -- | Sets the data transfer object's drop effect.
87+ setDropEffect :: forall eff . DropEffect -> DataTransfer -> Eff (dom :: DOM | eff ) Unit
88+ setDropEffect de = setDropEffectImpl case de of
89+ Copy -> " copy"
90+ None -> " none"
91+ Move -> " move"
92+ Link -> " link"
You can’t perform that action at this time.
0 commit comments