Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
}
7 changes: 3 additions & 4 deletions src/Data/VirtualDOM/DOM.purs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down
5 changes: 2 additions & 3 deletions test/Main.purs
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down Expand Up @@ -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