diff --git a/src/DOM/HTML/Event/DragEvent/DataTransfer.js b/src/DOM/HTML/Event/DragEvent/DataTransfer.js index 31c68f4..eb6ccde 100644 --- a/src/DOM/HTML/Event/DragEvent/DataTransfer.js +++ b/src/DOM/HTML/Event/DragEvent/DataTransfer.js @@ -1,5 +1,5 @@ "use strict"; -exports.files = function (dataTransfer) { +exports.filesNullable = function (dataTransfer) { return dataTransfer.files; }; diff --git a/src/DOM/HTML/Event/DragEvent/DataTransfer.purs b/src/DOM/HTML/Event/DragEvent/DataTransfer.purs index 033330e..5ff7224 100644 --- a/src/DOM/HTML/Event/DragEvent/DataTransfer.purs +++ b/src/DOM/HTML/Event/DragEvent/DataTransfer.purs @@ -1,9 +1,21 @@ -module DOM.HTML.Event.DragEvent.DataTransfer where +module DOM.HTML.Event.DragEvent.DataTransfer + ( DataTransfer + , files + ) where +import Prelude import DOM.File.Types (FileList) +import Data.Maybe (Maybe) +import Data.Nullable (Nullable, toMaybe) foreign import data DataTransfer :: * -- | Contains a list of all the local files available on the data transfer. -- | Empty if the drag operation doesn't involve dragging files. -foreign import files :: DataTransfer -> FileList +-- | +-- | It's possible that a drag operation may have null files, instead of an +-- | empty file list. In these cases Nothing is returned. +files :: DataTransfer -> Maybe FileList +files = toMaybe <$> filesNullable + +foreign import filesNullable :: DataTransfer -> Nullable FileList