diff options
Diffstat (limited to 'js/src/Main.purs')
-rw-r--r-- | js/src/Main.purs | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/js/src/Main.purs b/js/src/Main.purs index a16b2cd..0ff5fd7 100644 --- a/js/src/Main.purs +++ b/js/src/Main.purs @@ -1,14 +1,13 @@ module Main (main) where -import Control.Monad.Eff (Eff) import Data.Array (catMaybes) as Array import Data.Maybe (Maybe(..)) import Data.Traversable (sequence, sequence_) as Traversable -import DOM (DOM) -import DOM.Node.ParentNode (QuerySelector(..)) -import DOM.Node.Types (elementToNode) as DOM -import DOM.Node.Types (Node) +import Effect (Effect) import Prelude +import Web.DOM.Element (toNode) as Element +import Web.DOM.Internal.Types (Node) +import Web.DOM.ParentNode (QuerySelector(..)) import Dom (selectElement, selectElements, onInput, setValue, selectElementFrom) as Dom import EditableNumber (NumberElem) @@ -16,20 +15,20 @@ import EditableNumber (set) as EditableNumber import Number (format) as Number import Parser (number) as Parser -main :: forall e. Eff (dom :: DOM | e) Unit +main :: Effect Unit main = do tagElems <- getNumberElements numberElems <- Array.catMaybes <$> (Traversable.sequence $ map EditableNumber.set tagElems) Traversable.sequence_ $ map (onInput numberElems) numberElems -getNumberElements :: forall e. Eff (dom :: DOM | e) (Array { tag :: String, node :: Node }) +getNumberElements :: Effect (Array { tag :: String, node :: Node }) getNumberElements = do - let fromElem tag elem = { tag: tag, node: DOM.elementToNode elem } + let fromElem tag elem = { tag: tag, node: Element.toNode elem } h1 <- map (fromElem "h1") <$> Dom.selectElement (QuerySelector "h1") lis <- map (fromElem "li") <$> Dom.selectElements (QuerySelector "ul > li") pure $ (maybeToArray h1 <> lis) -onInput :: forall e. Array NumberElem -> NumberElem -> Eff (dom :: DOM | e) Unit +onInput :: Array NumberElem -> NumberElem -> Effect Unit onInput numberElems { elem, number } = do Dom.onInput elem (\value -> do case Parser.number value of |