@@ -24,7 +24,7 @@ import Data.Text (Text)
2424import qualified Data.Text as T
2525import GHCJS.DOM.Element hiding (reset)
2626import GHCJS.DOM.EventM (on)
27−import GHCJS.DOM.Types (runJSM, askJSM, MonadJSM)
27+import GHCJS.DOM.Types (runJSM, askJSM, liftJSM, MonadJSM)
2828
2929-- | A widget that wraps the given widget in a div and fires an event when resized.
3030-- Adapted from github.com/marcj/css-element-queries
@@ -76,10 +76,10 @@ resizeDetectorWithAttrs attrs w = do
7676 then return Nothing
7777 else fmap Just reset
7878 pb <- getPostBuild
79− ctx <- askJSM
8079 expandScroll <- wrapDomEvent (_element_raw expand) (`on` scroll) $ return ()
8180 shrinkScroll <- wrapDomEvent (_element_raw shrink) (`on` scroll) $ return ()
82− size0 <- performEvent $ fmap (const $ runJSM reset ctx) pb
81+ size0 <- performEvent $ fmap (const $ liftJSM reset) pb
82+ ctx <- askJSM
8383 rec resize <- performEventAsync $ fmap (\d cb -> liftIO $ cb =<< runJSM (resetIfChanged d) ctx) $ tag (current dimensions) $ leftmost [expandScroll, shrinkScroll]
8484 dimensions <- holdDyn (Nothing, Nothing) $ leftmost [ size0, fmapMaybe id resize ]
8585 return (fmapMaybe void resize, w')