on develop help sign in
Update to ghcjs-dom 0.5
commiteffc73067d20ad71f7bd8728973c3a4c94b82480 authorHamish Mackenzie <Hamish.K.Mackenzie@googlemail.com> dateSun 16 Oct 2016, 23:45 (10 years ago) parent9f70557
4 files changed+13−16
reflex-dom.cabal+1−1 src/Reflex/Dom/Builder/Immediate.hs+6−8 src/Reflex/Dom/Old.hs+1−2 src/Reflex/Dom/Widget/Input.hs+5−5
reflex-dom.cabal+1−1
@@ -35,7 +35,7 @@ library
3535 these >= 0.4 && < 0.8,
3636 ref-tf == 0.4.*,
3737 random == 1.1.*,
38− ghcjs-dom >= 0.4.0.0 && < 0.5,
38+ ghcjs-dom >= 0.5.0.0 && < 0.6,
3939 transformers >= 0.3 && < 0.6,
4040 lens >= 4.7 && < 5,
4141 text == 1.2.*,
src/Reflex/Dom/Builder/Immediate.hs+6−8
@@ -57,9 +57,7 @@ import GHCJS.DOM.Node (appendChild, getOwnerDocument, getParentNode, getPrevious
5757import GHCJS.DOM.Types
5858 (liftJSM, askJSM, runJSM, JSM, MonadJSM(..),
5959 FocusEvent, IsElement, IsEvent, IsNode, KeyboardEvent, Node,
60− ToDOMString, TouchEvent, WheelEvent, castToHTMLInputElement,
61− castToHTMLSelectElement, castToHTMLTextAreaElement,
62− strictEqual)
60+ ToDOMString, TouchEvent, WheelEvent, strictEqual, uncheckedCastTo)
6361import qualified GHCJS.DOM.Types as DOM
6462import GHCJS.DOM.UIEvent
6563import qualified GHCJS.DOM.Window as Window
@@ -248,8 +246,8 @@ instance er ~ EventResult => Default (GhcjsEventSpec er) where
248246 def = GhcjsEventSpec
249247 { _ghcjsEventSpec_filters = mempty
250248 , _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
252− e <- Element.castToElement t
249+ Just (t :: DOM.EventTarget) <- withIsEvent en $ Event.getTarget evt --TODO: Rework this; defaultDomEventHandler shouldn't need to take this as an argument
250+ let e = uncheckedCastTo DOM.Element t
253251 runReaderT (defaultDomEventHandler e en) evt
254252 }
255253
@@ -274,7 +272,7 @@ instance SupportsImmediateDomBuilder t m => DomBuilder t (ImmediateDomBuilderT t
274272 {-# INLINABLE inputElement #-}
275273 inputElement cfg = do
276274 ((e, _), domElement) <- makeElement "input" (cfg ^. inputElementConfig_elementConfig) $ return ()
277− domInputElement <- liftJSM $ castToHTMLInputElement domElement
275+ let domInputElement = uncheckedCastTo DOM.HTMLInputElement domElement
278276 Input.setValue domInputElement $ Just (cfg ^. inputElementConfig_initialValue)
279277 Just v0 <- Input.getValue domInputElement
280278 let getMyValue = fromMaybe "" <$> Input.getValue domInputElement
@@ -321,7 +319,7 @@ instance SupportsImmediateDomBuilder t m => DomBuilder t (ImmediateDomBuilderT t
321319 {-# INLINABLE textAreaElement #-}
322320 textAreaElement cfg = do --TODO
323321 ((e, _), domElement) <- makeElement "textarea" (cfg ^. textAreaElementConfig_elementConfig) $ return ()
324− domTextAreaElement <- liftJSM $ castToHTMLTextAreaElement domElement
322+ let domTextAreaElement = uncheckedCastTo DOM.HTMLTextAreaElement domElement
325323 TextArea.setValue domTextAreaElement $ Just (cfg ^. textAreaElementConfig_initialValue)
326324 Just v0 <- TextArea.getValue domTextAreaElement
327325 let getMyValue = fromMaybe "" <$> TextArea.getValue domTextAreaElement
@@ -344,7 +342,7 @@ instance SupportsImmediateDomBuilder t m => DomBuilder t (ImmediateDomBuilderT t
344342 {-# INLINABLE selectElement #-}
345343 selectElement cfg child = do
346344 ((e, result), domElement) <- makeElement "select" (cfg ^. selectElementConfig_elementConfig) child
347− domSelectElement <- liftJSM $ castToHTMLSelectElement domElement
345+ let domSelectElement = uncheckedCastTo DOM.HTMLSelectElement domElement
348346 Select.setValue domSelectElement $ Just (cfg ^. selectElementConfig_initialValue)
349347 Just v0 <- Select.getValue domSelectElement
350348 let getMyValue = fromMaybe "" <$> Select.getValue domSelectElement
src/Reflex/Dom/Old.hs+1−2
@@ -65,8 +65,7 @@ import GHCJS.DOM.EventM (EventM)
6565import GHCJS.DOM.NamedNodeMap as NNM
6666import GHCJS.DOM.Node (getFirstChild, getNodeName, getParentNode, getPreviousSibling, removeChild)
6767import GHCJS.DOM.Types
68− (MonadJSM, askJSM, runJSM, strictEqual, liftJSM, JSM, IsElement,
69− IsNode)
68+ (MonadJSM, strictEqual, liftJSM, JSM, IsElement, IsNode)
7069import qualified GHCJS.DOM.Types as DOM
7170import Reflex.Class
7271import Reflex.Dom.Builder.Class
src/Reflex/Dom/Widget/Input.hs+5−5
@@ -30,13 +30,13 @@ import Data.Maybe
3030import Data.Semigroup
3131import Data.Text (Text)
3232import qualified Data.Text as T
33−import GHCJS.DOM.Element (castToElement)
3433import qualified GHCJS.DOM.Element as Element
3534import GHCJS.DOM.EventM (on)
3635import qualified GHCJS.DOM.FileList as FileList
3736import GHCJS.DOM.HTMLInputElement (HTMLInputElement)
3837import 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(..))
4040import Reflex.Class
4141import Reflex.Dynamic
4242import Reflex.Dom.Builder.Class
@@ -285,7 +285,7 @@ checkboxView dAttrs dValue = do
285285 let filters :: DMap EventName (GhcjsEventFilter CheckboxViewEventResult)
286286 filters = DMap.singleton Click $ GhcjsEventFilter $ \(GhcjsDomEvent evt) -> do
287287 Just t <- Event.getTarget evt
288− b <- Input.getChecked =<< Input.castToHTMLInputElement t
288+ b <- Input.getChecked =<< unsafeCastTo Input.HTMLInputElement t
289289 return $ (,) preventDefault $ return $ Just $ CheckboxViewEventResult b
290290 elementConfig :: ElementConfig CheckboxViewEventResult t m
291291 elementConfig = (def :: ElementConfig EventResult t m)
@@ -296,8 +296,8 @@ checkboxView dAttrs dValue = do
296296 , _ghcjsEventSpec_handler = \(en, GhcjsDomEvent evt) -> case en of
297297 Click -> error "impossible"
298298 _ -> do
299− Just e <- withIsEvent en $ Event.getTarget evt
300− element <- castToElement e
299+ Just (e :: DOM.EventTarget) <- withIsEvent en $ Event.getTarget evt
300+ element <- unsafeCastTo DOM.Element e
301301 mr <- runReaderT (defaultDomEventHandler element en) evt
302302 return $ ffor mr $ \(EventResult r) -> CheckboxViewEventResult $ regularToCheckboxViewEventType en r
303303 }