Skip to content
This repository was archived by the owner on Oct 4, 2020. It is now read-only.

Commit 9251a2b

Browse files
committed
Derive Eq, Ord and avoid unsafePartialBecause
1 parent 8194cd6 commit 9251a2b

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/DOM/HTML/Event/DataTransfer.purs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ import DOM.File.Types (FileList)
1717
import Data.Maybe (Maybe)
1818
import Data.MediaType (MediaType(..))
1919
import Data.Nullable (Nullable, toMaybe)
20-
import Partial.Unsafe (unsafePartialBecause)
20+
import Partial (crashWith)
21+
import Partial.Unsafe (unsafePartial)
2122

2223
foreign import data DataTransfer :: Type
2324

@@ -69,24 +70,28 @@ setData (MediaType format) dat dt = setDataImpl format dat dt
6970

7071
foreign import dropEffectImpl :: forall eff. DataTransfer -> Eff (dom :: DOM | eff) String
7172

72-
data DropEffect = None | Copy | Move | Link
73+
data DropEffect = Copy | Link | Move | None
74+
75+
derive instance eqDropEffect :: Eq DropEffect
76+
derive instance ordDropEffect :: Ord DropEffect
7377

7478
--| Gets the data transfer object's drop effect.
7579
dropEffect :: forall eff. DataTransfer -> Eff (dom :: DOM | eff) DropEffect
7680
dropEffect dt = do
7781
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
82+
pure $ unsafePartial $ case de of
7983
"copy" -> Copy
80-
"move" -> Move
8184
"link" -> Link
85+
"move" -> Move
8286
"none" -> None
87+
_ -> crashWith "Impossible according to https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/dropEffect"
8388

8489
foreign import setDropEffectImpl :: forall eff. String -> DataTransfer -> Eff (dom :: DOM | eff) Unit
8590

8691
--| Sets the data transfer object's drop effect.
8792
setDropEffect :: forall eff. DropEffect -> DataTransfer -> Eff (dom :: DOM | eff) Unit
8893
setDropEffect de = setDropEffectImpl case de of
8994
Copy -> "copy"
90-
None -> "none"
91-
Move -> "move"
9295
Link -> "link"
96+
Move -> "move"
97+
None -> "none"

0 commit comments

Comments
 (0)