on develop help sign in
Add 'keydown' and 'keyup' to match 'keypress'
63852abTom Smalley
reflex-dom-core/src/Reflex/Dom/Widget/Input.hs+9−1
@@ -112,7 +112,15 @@ textInputGetEnter = keypress Enter
112
112
113{-# INLINABLE keypress #-}
113{-# INLINABLE keypress #-}
114keypress :: (Reflex t, HasDomEvent t e 'KeypressTag, DomEventType e 'KeypressTag ~ Word) => Key -> e -> Event t ()
114keypress :: (Reflex t, HasDomEvent t e 'KeypressTag, DomEventType e 'KeypressTag ~ Word) => Key -> e -> Event t ()
115−keypress key i = fmapMaybe (\n -> if keyCodeLookup (fromIntegral n) == key then Just () else Nothing) $ domEvent Keypress i
115+keypress key = fmapMaybe (\n -> guard $ keyCodeLookup (fromIntegral n) == key) . domEvent Keypress
116+
117+{-# INLINABLE keydown #-}
118+keydown :: (Reflex t, HasDomEvent t e 'KeydownTag, DomEventType e 'KeydownTag ~ Word) => Key -> e -> Event t ()
119+keydown key = fmapMaybe (\n -> guard $ keyCodeLookup (fromIntegral n) == key) . domEvent Keydown
120+
121+{-# INLINABLE keyup #-}
122+keyup :: (Reflex t, HasDomEvent t e 'KeyupTag, DomEventType e 'KeyupTag ~ Word) => Key -> e -> Event t ()
123+keyup key = fmapMaybe (\n -> guard $ keyCodeLookup (fromIntegral n) == key) . domEvent Keyup
116
124
117data RangeInputConfig t
125data RangeInputConfig t
118 = RangeInputConfig { _rangeInputConfig_initialValue :: Float
126 = RangeInputConfig { _rangeInputConfig_initialValue :: Float