on develop help sign in
Update to ghcjs-dom 0.5
effc730Hamish Mackenzie
reflex-dom.cabal+1−1
@@ -35,7 +35,7 @@ library
35 these >= 0.4 && < 0.8,
35 these >= 0.4 && < 0.8,
36 ref-tf == 0.4.*,
36 ref-tf == 0.4.*,
37 random == 1.1.*,
37 random == 1.1.*,
38− ghcjs-dom >= 0.4.0.0 && < 0.5,
38+ ghcjs-dom >= 0.5.0.0 && < 0.6,
39 transformers >= 0.3 && < 0.6,
39 transformers >= 0.3 && < 0.6,
40 lens >= 4.7 && < 5,
40 lens >= 4.7 && < 5,
41 text == 1.2.*,
41 text == 1.2.*,
src/Reflex/Dom/Builder/Immediate.hs+6−8
@@ -57,9 +57,7 @@ import GHCJS.DOM.Node (appendChild, getOwnerDocument, getParentNode, getPrevious
57import GHCJS.DOM.Types
57import GHCJS.DOM.Types
58 (liftJSM, askJSM, runJSM, JSM, MonadJSM(..),
58 (liftJSM, askJSM, runJSM, JSM, MonadJSM(..),
59 FocusEvent, IsElement, IsEvent, IsNode, KeyboardEvent, Node,
59 FocusEvent, IsElement, IsEvent, IsNode, KeyboardEvent, Node,
60− ToDOMString, TouchEvent, WheelEvent, castToHTMLInputElement,
60+ ToDOMString, TouchEvent, WheelEvent, strictEqual, uncheckedCastTo)
61− castToHTMLSelectElement, castToHTMLTextAreaElement,
62− strictEqual)
63import qualified GHCJS.DOM.Types as DOM
61import qualified GHCJS.DOM.Types as DOM
64import GHCJS.DOM.UIEvent
62import GHCJS.DOM.UIEvent
65import qualified GHCJS.DOM.Window as Window
63import qualified GHCJS.DOM.Window as Window
@@ -248,8 +246,8 @@ instance er ~ EventResult => Default (GhcjsEventSpec er) where
248 def = GhcjsEventSpec
246 def = GhcjsEventSpec
249 { _ghcjsEventSpec_filters = mempty
247 { _ghcjsEventSpec_filters = mempty
250 , _ghcjsEventSpec_handler = \(en, GhcjsDomEvent evt) -> do
248 , _ghcjsEventSpec_handler = \(en, GhcjsDomEvent evt) -> do
251− Just t <- withIsEvent en $ Event.getTarget evt --TODO: Rework this; defaultDomEventHandler shouldn't need to take this as an argument
249+ Just (t :: DOM.EventTarget) <- withIsEvent en $ Event.getTarget evt --TODO: Rework this; defaultDomEventHandler shouldn't need to take this as an argument
252− e <- Element.castToElement t
250+ let e = uncheckedCastTo DOM.Element t
253 runReaderT (defaultDomEventHandler e en) evt
251 runReaderT (defaultDomEventHandler e en) evt
254 }
252 }
255
253
@@ -274,7 +272,7 @@ instance SupportsImmediateDomBuilder t m => DomBuilder t (ImmediateDomBuilderT t
274 {-# INLINABLE inputElement #-}
272 {-# INLINABLE inputElement #-}
275 inputElement cfg = do
273 inputElement cfg = do
276 ((e, _), domElement) <- makeElement "input" (cfg ^. inputElementConfig_elementConfig) $ return ()
274 ((e, _), domElement) <- makeElement "input" (cfg ^. inputElementConfig_elementConfig) $ return ()
277− domInputElement <- liftJSM $ castToHTMLInputElement domElement
275+ let domInputElement = uncheckedCastTo DOM.HTMLInputElement domElement
278 Input.setValue domInputElement $ Just (cfg ^. inputElementConfig_initialValue)
276 Input.setValue domInputElement $ Just (cfg ^. inputElementConfig_initialValue)
279 Just v0 <- Input.getValue domInputElement
277 Just v0 <- Input.getValue domInputElement
280 let getMyValue = fromMaybe "" <$> Input.getValue domInputElement
278 let getMyValue = fromMaybe "" <$> Input.getValue domInputElement
@@ -321,7 +319,7 @@ instance SupportsImmediateDomBuilder t m => DomBuilder t (ImmediateDomBuilderT t
321 {-# INLINABLE textAreaElement #-}
319 {-# INLINABLE textAreaElement #-}
322 textAreaElement cfg = do --TODO
320 textAreaElement cfg = do --TODO
323 ((e, _), domElement) <- makeElement "textarea" (cfg ^. textAreaElementConfig_elementConfig) $ return ()
321 ((e, _), domElement) <- makeElement "textarea" (cfg ^. textAreaElementConfig_elementConfig) $ return ()
324− domTextAreaElement <- liftJSM $ castToHTMLTextAreaElement domElement
322+ let domTextAreaElement = uncheckedCastTo DOM.HTMLTextAreaElement domElement
325 TextArea.setValue domTextAreaElement $ Just (cfg ^. textAreaElementConfig_initialValue)
323 TextArea.setValue domTextAreaElement $ Just (cfg ^. textAreaElementConfig_initialValue)
326 Just v0 <- TextArea.getValue domTextAreaElement
324 Just v0 <- TextArea.getValue domTextAreaElement
327 let getMyValue = fromMaybe "" <$> TextArea.getValue domTextAreaElement
325 let getMyValue = fromMaybe "" <$> TextArea.getValue domTextAreaElement
@@ -344,7 +342,7 @@ instance SupportsImmediateDomBuilder t m => DomBuilder t (ImmediateDomBuilderT t
344 {-# INLINABLE selectElement #-}
342 {-# INLINABLE selectElement #-}
345 selectElement cfg child = do
343 selectElement cfg child = do
346 ((e, result), domElement) <- makeElement "select" (cfg ^. selectElementConfig_elementConfig) child
344 ((e, result), domElement) <- makeElement "select" (cfg ^. selectElementConfig_elementConfig) child
347− domSelectElement <- liftJSM $ castToHTMLSelectElement domElement
345+ let domSelectElement = uncheckedCastTo DOM.HTMLSelectElement domElement
348 Select.setValue domSelectElement $ Just (cfg ^. selectElementConfig_initialValue)
346 Select.setValue domSelectElement $ Just (cfg ^. selectElementConfig_initialValue)
349 Just v0 <- Select.getValue domSelectElement
347 Just v0 <- Select.getValue domSelectElement
350 let getMyValue = fromMaybe "" <$> Select.getValue domSelectElement
348 let getMyValue = fromMaybe "" <$> Select.getValue domSelectElement
src/Reflex/Dom/Old.hs+1−2
@@ -65,8 +65,7 @@ import GHCJS.DOM.EventM (EventM)
65import GHCJS.DOM.NamedNodeMap as NNM
65import GHCJS.DOM.NamedNodeMap as NNM
66import GHCJS.DOM.Node (getFirstChild, getNodeName, getParentNode, getPreviousSibling, removeChild)
66import GHCJS.DOM.Node (getFirstChild, getNodeName, getParentNode, getPreviousSibling, removeChild)
67import GHCJS.DOM.Types
67import GHCJS.DOM.Types
68− (MonadJSM, askJSM, runJSM, strictEqual, liftJSM, JSM, IsElement,
68+ (MonadJSM, strictEqual, liftJSM, JSM, IsElement, IsNode)
69− IsNode)
70import qualified GHCJS.DOM.Types as DOM
69import qualified GHCJS.DOM.Types as DOM
71import Reflex.Class
70import Reflex.Class
72import Reflex.Dom.Builder.Class
71import Reflex.Dom.Builder.Class
src/Reflex/Dom/Widget/Input.hs+5−5
@@ -30,13 +30,13 @@ import Data.Maybe
30import Data.Semigroup
30import Data.Semigroup
31import Data.Text (Text)
31import Data.Text (Text)
32import qualified Data.Text as T
32import qualified Data.Text as T
33−import GHCJS.DOM.Element (castToElement)
34import qualified GHCJS.DOM.Element as Element
33import qualified GHCJS.DOM.Element as Element
35import GHCJS.DOM.EventM (on)
34import GHCJS.DOM.EventM (on)
36import qualified GHCJS.DOM.FileList as FileList
35import qualified GHCJS.DOM.FileList as FileList
37import GHCJS.DOM.HTMLInputElement (HTMLInputElement)
36import GHCJS.DOM.HTMLInputElement (HTMLInputElement)
38import GHCJS.DOM.HTMLTextAreaElement (HTMLTextAreaElement)
37import GHCJS.DOM.HTMLTextAreaElement (HTMLTextAreaElement)
39−import GHCJS.DOM.Types (MonadJSM, File)
38+import GHCJS.DOM.Types (MonadJSM, File, unsafeCastTo)
39+import qualified GHCJS.DOM.Types as DOM (Element(..), EventTarget(..))
40import Reflex.Class
40import Reflex.Class
41import Reflex.Dynamic
41import Reflex.Dynamic
42import Reflex.Dom.Builder.Class
42import Reflex.Dom.Builder.Class
@@ -285,7 +285,7 @@ checkboxView dAttrs dValue = do
285 let filters :: DMap EventName (GhcjsEventFilter CheckboxViewEventResult)
285 let filters :: DMap EventName (GhcjsEventFilter CheckboxViewEventResult)
286 filters = DMap.singleton Click $ GhcjsEventFilter $ \(GhcjsDomEvent evt) -> do
286 filters = DMap.singleton Click $ GhcjsEventFilter $ \(GhcjsDomEvent evt) -> do
287 Just t <- Event.getTarget evt
287 Just t <- Event.getTarget evt
288− b <- Input.getChecked =<< Input.castToHTMLInputElement t
288+ b <- Input.getChecked =<< unsafeCastTo Input.HTMLInputElement t
289 return $ (,) preventDefault $ return $ Just $ CheckboxViewEventResult b
289 return $ (,) preventDefault $ return $ Just $ CheckboxViewEventResult b
290 elementConfig :: ElementConfig CheckboxViewEventResult t m
290 elementConfig :: ElementConfig CheckboxViewEventResult t m
291 elementConfig = (def :: ElementConfig EventResult t m)
291 elementConfig = (def :: ElementConfig EventResult t m)
@@ -296,8 +296,8 @@ checkboxView dAttrs dValue = do
296 , _ghcjsEventSpec_handler = \(en, GhcjsDomEvent evt) -> case en of
296 , _ghcjsEventSpec_handler = \(en, GhcjsDomEvent evt) -> case en of
297 Click -> error "impossible"
297 Click -> error "impossible"
298 _ -> do
298 _ -> do
299− Just e <- withIsEvent en $ Event.getTarget evt
299+ Just (e :: DOM.EventTarget) <- withIsEvent en $ Event.getTarget evt
300− element <- castToElement e
300+ element <- unsafeCastTo DOM.Element e
301 mr <- runReaderT (defaultDomEventHandler element en) evt
301 mr <- runReaderT (defaultDomEventHandler element en) evt
302 return $ ffor mr $ \(EventResult r) -> CheckboxViewEventResult $ regularToCheckboxViewEventType en r
302 return $ ffor mr $ \(EventResult r) -> CheckboxViewEventResult $ regularToCheckboxViewEventType en r
303 }
303 }