Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
purescript-reactix
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gargantext
purescript-reactix
Commits
5829c8ab
Commit
5829c8ab
authored
Apr 28, 2019
by
James Laver
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make SyntheticEvent be a type parameterised by an underlying native event type
parent
792d95b6
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
51 additions
and
71 deletions
+51
-71
SyntheticEvent.purs
src/Reactix/SyntheticEvent.purs
+51
-71
No files found.
src/Reactix/SyntheticEvent.purs
View file @
5829c8ab
...
@@ -3,129 +3,110 @@ module Reactix.SyntheticEvent where
...
@@ -3,129 +3,110 @@ module Reactix.SyntheticEvent where
import Prelude
import Prelude
import DOM.Simple as DOM
import DOM.Simple as DOM
import DOM.Simple.Event as E
import DOM.Simple.Event
( class IsEvent, class IsMouseEvent, class HasModifierKeys
, KeyboardEvent, MouseEvent, MouseButtonEvent, TouchEvent )
import Effect ( Effect )
import Effect ( Effect )
import Effect.Uncurried ( EffectFn1, runEffectFn1 )
import Effect.Uncurried ( EffectFn1, runEffectFn1 )
import FFI.Simple ( (..), (...), delay )
import FFI.Simple ( (..), (...), delay )
class IsSyntheticEvent
e
foreign import data SyntheticEvent :: Type -> Typ
e
foreign import data NativeEvent :: Type
bubbles :: forall e. IsEvent e => SyntheticEvent e -> Boolean
foreign import data MouseEvent :: Type
foreign import data KeyboardEvent :: Type
instance keyboardEventIsSyntheticEvent :: IsSyntheticEvent KeyboardEvent
instance mouseEventIsSyntheticEvent :: IsSyntheticEvent MouseEvent
bubbles :: forall e. IsSyntheticEvent e => e -> Boolean
bubbles e = e .. "bubbles"
bubbles e = e .. "bubbles"
cancelable :: forall e. Is
SyntheticEvent e =>
e -> Boolean
cancelable :: forall e. Is
Event e => SyntheticEvent
e -> Boolean
cancelable e = e .. "cancelable"
cancelable e = e .. "cancelable"
isTrusted :: forall e. Is
SyntheticEvent e =>
e -> Boolean
isTrusted :: forall e. Is
Event e => SyntheticEvent
e -> Boolean
isTrusted e = e .. "isTrusted"
isTrusted e = e .. "isTrusted"
defaultPrevented :: forall e. Is
SyntheticEvent e =>
e -> Boolean
defaultPrevented :: forall e. Is
Event e => SyntheticEvent
e -> Boolean
defaultPrevented e = e .. "defaultPrevented"
defaultPrevented e = e .. "defaultPrevented"
eventPhase :: forall e. Is
SyntheticEvent e =>
e -> Number
eventPhase :: forall e. Is
Event e => SyntheticEvent
e -> Number
eventPhase e = e .. "eventPhase"
eventPhase e = e .. "eventPhase"
timestamp :: forall e. Is
SyntheticEvent e =>
e -> Number
timestamp :: forall e. Is
Event e => SyntheticEvent
e -> Number
timestamp e = e .. "timeStamp"
timestamp e = e .. "timeStamp"
type' :: forall e. Is
SyntheticEvent e =>
e -> String
type' :: forall e. Is
Event e => SyntheticEvent
e -> String
type' e = e .. "type"
type' e = e .. "type"
-- target :: forall e. IsSyntheticEvent e => e -> NativeEventTarge
t
target :: forall e t. IsEvent e => SyntheticEvent e -> DOM.Elemen
t
--
target e = e .. "target"
target e = e .. "target"
-- currentTarget :: forall e. IsSyntheticEvent e => e -> NativeEventTarge
t
currentTarget :: forall e. IsEvent e => SyntheticEvent e -> DOM.Elemen
t
--
currentTarget e = e .. "currentTarget"
currentTarget e = e .. "currentTarget"
-- nativeEvent :: forall e. IsSyntheticEvent e => e -> NativeEvent
nativeEvent :: forall e. IsEvent e => SyntheticEvent e -> e
--
nativeEvent e = e .. "nativeEvent"
nativeEvent e = e .. "nativeEvent"
stopPropagation :: forall e. Is
SyntheticEvent e =>
e -> Effect Unit
stopPropagation :: forall e. Is
Event e => SyntheticEvent
e -> Effect Unit
stopPropagation e = delay $ \_ -> pure $ e ... "stopPropagation" $ []
stopPropagation e = delay
unit
$ \_ -> pure $ e ... "stopPropagation" $ []
preventDefault :: forall e. Is
SyntheticEvent e =>
e -> Effect Unit
preventDefault :: forall e. Is
Event e => SyntheticEvent
e -> Effect Unit
preventDefault e = delay $ \_ -> pure $ e ... "preventDefault" $ []
preventDefault e = delay
unit
$ \_ -> pure $ e ... "preventDefault" $ []
isPropagationStopped :: forall e. Is
SyntheticEvent e =>
e -> Effect Unit
isPropagationStopped :: forall e. Is
Event e => SyntheticEvent
e -> Effect Unit
isPropagationStopped e = e ... "isPropagationStopped" $ []
isPropagationStopped e = e ... "isPropagationStopped" $ []
isDefaultPrevented :: forall e. Is
SyntheticEvent e =>
e -> Effect Unit
isDefaultPrevented :: forall e. Is
Event e => SyntheticEvent
e -> Effect Unit
isDefaultPrevented e = e ... "isDefaultPrevented" $ []
isDefaultPrevented e = e ... "isDefaultPrevented" $ []
-- Events with Modifier keys
-- Events with Modifier keys
-- | This class is used to access information about modifier keys for
altKey :: forall e. HasModifierKeys e => SyntheticEvent e -> Boolean
-- | supported events
class HasModifierKeys e
instance mouseEventHasModifierKeys :: HasModifierKeys MouseEvent
instance keyboardEventHasModifierKeys :: HasModifierKeys KeyboardEvent
-- instance touchEventHasModifierKeys :: HasModifierKeys TouchEvent
altKey :: forall e. HasModifierKeys e => e -> Boolean
altKey e = e .. "altKey"
altKey e = e .. "altKey"
ctrlKey :: forall e. HasModifierKeys e => e -> Boolean
ctrlKey :: forall e. HasModifierKeys e =>
SyntheticEvent
e -> Boolean
ctrlKey e = e .. "ctrlKey"
ctrlKey e = e .. "ctrlKey"
shiftKey :: forall e. HasModifierKeys e => e -> Boolean
shiftKey :: forall e. HasModifierKeys e =>
SyntheticEvent
e -> Boolean
shiftKey e = e .. "shiftKey"
shiftKey e = e .. "shiftKey"
metaKey :: forall e. HasModifierKeys e => e -> Boolean
metaKey :: forall e. HasModifierKeys e =>
SyntheticEvent
e -> Boolean
metaKey e = e .. "metaKey"
metaKey e = e .. "metaKey"
getModifierState :: forall e. HasModifierKeys e => e -> String -> Boolean
getModifierState :: forall e. HasModifierKeys e =>
SyntheticEvent
e -> String -> Boolean
getModifierState e s = e ... "getModifierState" $ [ s ]
getModifierState e s = e ... "getModifierState" $ [ s ]
-- Keyboard Events
-- Keyboard Events
key :: KeyboardEvent -> String
key ::
SyntheticEvent
KeyboardEvent -> String
key e = e .. "key"
key e = e .. "key"
which :: KeyboardEvent -> Number
which ::
SyntheticEvent
KeyboardEvent -> Number
which e = e .. "which"
which e = e .. "which"
charCode :: KeyboardEvent -> Int
charCode ::
SyntheticEvent
KeyboardEvent -> Int
charCode e = e .. "charCode"
charCode e = e .. "charCode"
keyCode :: KeyboardEvent -> Number
keyCode ::
SyntheticEvent
KeyboardEvent -> Number
keyCode e = e .. "keyCode"
keyCode e = e .. "keyCode"
locale :: KeyboardEvent -> String
locale ::
SyntheticEvent
KeyboardEvent -> String
locale e = e .. "locale"
locale e = e .. "locale"
location :: KeyboardEvent -> Number
location ::
SyntheticEvent
KeyboardEvent -> Number
location e = e .. "location"
location e = e .. "location"
repeat :: KeyboardEvent -> Boolean
repeat ::
SyntheticEvent
KeyboardEvent -> Boolean
repeat e = e .. "repeat"
repeat e = e .. "repeat"
button ::
Mouse
Event -> Number
button ::
SyntheticEvent MouseButton
Event -> Number
button e = e .. "button"
button e = e .. "button"
buttons ::
MouseEvent
-> Number
buttons ::
forall e. IsMouseEvent e => SyntheticEvent e
-> Number
buttons e = e .. "buttons"
buttons e = e .. "buttons"
-- relatedTarget :: MouseEvent -> NativeEventTarge
t
relatedTarget :: forall e. IsMouseEvent e => SyntheticEvent e -> DOM.Elemen
t
--
relatedTarget e = e .. "relatedTarget"
relatedTarget e = e .. "relatedTarget"
clientX ::
MouseEvent
-> Number
clientX ::
forall e. IsMouseEvent e => SyntheticEvent e
-> Number
clientX e = e .. "clientX"
clientX e = e .. "clientX"
clientY ::
MouseEvent
-> Number
clientY ::
forall e. IsMouseEvent e => SyntheticEvent e
-> Number
clientY e = e .. "clientY"
clientY e = e .. "clientY"
pageX ::
MouseEvent
-> Number
pageX ::
forall e. IsMouseEvent e => SyntheticEvent e
-> Number
pageX e = e .. "pageX"
pageX e = e .. "pageX"
pageY ::
MouseEvent
-> Number
pageY ::
forall e. IsMouseEvent e => SyntheticEvent e
-> Number
pageY e = e .. "pageY"
pageY e = e .. "pageY"
screenX ::
MouseEvent
-> Number
screenX ::
forall e. IsMouseEvent e => SyntheticEvent e
-> Number
screenX e = e .. "screenX"
screenX e = e .. "screenX"
screenY ::
MouseEvent
-> Number
screenY ::
forall e. IsMouseEvent e => SyntheticEvent e
-> Number
screenY e = e .. "screenY"
screenY e = e .. "screenY"
-- foreign import data TouchEvent :: Type
-- changedTouches :: TouchEvent -> TouchList
-- targetTouches :: TouchEvent -> TouchList
-- changedTouches :: TouchEvent -> NativeTouchList
-- touches :: TouchEvent -> TouchList
-- targetTouches :: TouchEvent -> NativeTouchList
-- touches :: TouchEvent -> NativeTouchList
-- foreign import data NativeDataTransfer :: Type
-- foreign import data NativeAbstractView :: Type
-- foreign import data NativeTouchList :: Type
-- foreign import data AnimationEvent :: Type
-- foreign import data AnimationEvent :: Type
-- animationName :: AnimationEvent -> String
-- animationName :: AnimationEvent -> String
...
@@ -133,14 +114,13 @@ screenY e = e .. "screenY"
...
@@ -133,14 +114,13 @@ screenY e = e .. "screenY"
-- elapsedTime :: AnimationEvent -> Number
-- elapsedTime :: AnimationEvent -> Number
-- foreign import data ClipboardEvent :: Type
-- foreign import data ClipboardEvent :: Type
-- clipboardData :: ClipboardEvent ->
Native
DataTransfer
-- clipboardData :: ClipboardEvent -> DataTransfer
-- foreign import data CompositionEvent :: Type
-- foreign import data CompositionEvent :: Type
-- data' :: SyntheticCompositionEvent -> String
-- data' :: SyntheticCompositionEvent -> String
-- foreign import data FocusEvent :: Type
-- foreign import data FocusEvent :: Type
-- relatedTarget :: FocusEvent -> NativeEventTarget
-- relatedTarget :: FocusEvent -> DOM.Element
-- foreign import data TransitionEvent :: Type
-- foreign import data TransitionEvent :: Type
-- propertyName :: TransitionEvent -> String
-- propertyName :: TransitionEvent -> String
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment