diff --git a/bower.json b/bower.json index 794c7e6..392e80b 100644 --- a/bower.json +++ b/bower.json @@ -13,22 +13,22 @@ "output" ], "dependencies": { - "purescript-prelude": "^2.1.0", - "purescript-dom": "^3.0.0", - "purescript-eff": "^2.0.0", - "purescript-maybe": "^2.0.0", - "purescript-maps": "^2.0.0", - "purescript-foldable-traversable": "^2.0.0", - "purescript-tuples": "^3.0.0", - "purescript-strings": "^2.0.1", - "purescript-foreign": "^3.0.0", - "purescript-arrays": "^3.0.0", - "purescript-either": "^2.0.0", - "purescript-refs": "^2.0.0" + "purescript-prelude": "^3.0.0", + "purescript-dom": "^4.0.0", + "purescript-eff": "^3.0.0", + "purescript-maybe": "^3.0.0", + "purescript-maps": "^3.0.0", + "purescript-foldable-traversable": "^3.0.0", + "purescript-tuples": "^4.0.0", + "purescript-strings": "^3.0.0", + "purescript-foreign": "^4.0.0", + "purescript-arrays": "^4.0.0", + "purescript-either": "^3.0.0", + "purescript-refs": "^3.0.0" }, "devDependencies": { - "purescript-psci-support": "^2.0.0", - "purescript-signal": "^8.0.0", - "purescript-console": "^2.0.0" + "purescript-psci-support": "^3.0.0", + "purescript-signal": "^9.0.0", + "purescript-console": "^3.0.0" } } diff --git a/src/Data/VirtualDOM/DOM.purs b/src/Data/VirtualDOM/DOM.purs index a64eaff..641c181 100644 --- a/src/Data/VirtualDOM/DOM.purs +++ b/src/Data/VirtualDOM/DOM.purs @@ -16,7 +16,6 @@ import DOM.Event.Types (Event, EventTarget, EventType(EventType)) import DOM.HTML.Types (htmlDocumentToDocument) import DOM.Node.Types (Element, Document, textToNode, elementToNode, Node) import Data.Maybe (Maybe(Just)) -import Data.Nullable (toMaybe, toNullable) import Unsafe.Coerce (unsafeCoerce) document :: ∀ e. Eff (dom :: DOM | e) Document @@ -26,7 +25,7 @@ createElement :: ∀ e. String → Eff (dom :: DOM | e) Node createElement name = document >>= Doc.createElement name >>= elementToNode >>> pure createElementNS :: ∀ e. String → String → Eff (dom :: DOM | e) Node -createElementNS ns name = document >>= Doc.createElementNS (toNullable $ Just ns) name >>= elementToNode >>> pure +createElementNS ns name = document >>= Doc.createElementNS (Just ns) name >>= elementToNode >>> pure createTextNode :: ∀ e. String → Eff (dom :: DOM | e) Node createTextNode t = document >>= Doc.createTextNode t >>= textToNode >>> pure @@ -44,10 +43,10 @@ childCount :: ∀ e. Node → Eff (dom :: DOM | e) Int childCount = Node.childNodes >=> NodeList.length childAt :: ∀ e. Int → Node → Eff (dom :: DOM | e) (Maybe Node) -childAt index node = Node.childNodes node >>= NodeList.item index >>= toMaybe >>> pure +childAt index node = Node.childNodes node >>= NodeList.item index nextSibling :: ∀ e. Node → Eff (dom :: DOM | e) (Maybe Node) -nextSibling = Node.nextSibling >=> toMaybe >>> pure +nextSibling = Node.nextSibling >=> pure setTextContent :: ∀ e. String → Node → Eff (dom :: DOM | e) Unit setTextContent = Node.setTextContent diff --git a/test/Main.purs b/test/Main.purs index 8c9a154..d149edb 100644 --- a/test/Main.purs +++ b/test/Main.purs @@ -8,10 +8,9 @@ import DOM (DOM) import DOM.HTML (window) import DOM.HTML.Types (htmlDocumentToParentNode) import DOM.HTML.Window (document) -import DOM.Node.ParentNode (querySelector) +import DOM.Node.ParentNode (QuerySelector(..), querySelector) import DOM.Node.Types (elementToNode, Node) import Data.Maybe (Maybe(Just, Nothing), maybe) -import Data.Nullable (toMaybe) import Data.Tuple (Tuple(Tuple)) import Data.Tuple.Nested ((/\)) import Data.VirtualDOM (patch, VNode, text, prop, h, with, EventListener(On)) @@ -56,7 +55,7 @@ app stateS actions target = do main :: ∀ e. Eff (console :: CONSOLE, dom :: DOM, channel :: CHANNEL, timer :: TIMER | e) Unit main = do doc ← window >>= document >>= htmlDocumentToParentNode >>> pure - target ← querySelector "#content" doc >>= toMaybe >>> map elementToNode >>> pure + target ← querySelector (QuerySelector "#content") doc >>= map elementToNode >>> pure actions ← channel Noop let state = foldp update initialState $ subscribe actions maybe (log "No div#content found!") (app state actions) target