Skip to content

Instantly share code, notes, and snippets.

@pete-murphy
Created March 28, 2019 04:56
Show Gist options
  • Save pete-murphy/88081cb768d21836edf1fe8722ff9696 to your computer and use it in GitHub Desktop.
Save pete-murphy/88081cb768d21836edf1fe8722ff9696 to your computer and use it in GitHub Desktop.
module Main where
import Data.Maybe (Maybe(..), fromJust, fromMaybe)
import Effect (Effect)
import Effect.Console (log)
import Prelude (Unit, bind, pure, ($), (<$>))
import Web.DOM.Element (Element, toNode)
import Web.DOM.Node (setTextContent)
import Web.DOM.NonElementParentNode (NonElementParentNode, getElementById)
import Web.Event.Event (Event, target)
import Web.Event.EventTarget (addEventListener)
import Web.HTML (window)
import Web.HTML.HTMLDocument (toNonElementParentNode)
import Web.HTML.HTMLInputElement (value, fromEventTarget)
import Web.HTML.Window (document)
pname = "#inputName" :: String
bname = "#badgeName" :: String
main :: Effect Unit
main = do
nod1 <- returnNonElementParentNode
--querySelector :: QuerySelector -> ParentNode -> Effect (Maybe Element)
elementTarget <- getElementById pname nod1
--addEventListener :: EventType -> EventListener -> Boolean -> EventTarget
addEventListener "input" updateBadge false elementTarget
returnNonElementParentNode :: Effect NonElementParentNode
returnNonElementParentNode = do
win <- window
doc <- document win
let
nod = toNonElementParentNode doc
pure nod
updateBadge :: Event -> Unit
updateBadge event = do
nod2 <- returnNonElementParentNode
elementTarget <- getElementById bname nod2
let
input = do
tget <- target event
inml <- fromEventTarget tget
pure $ value inml
let
badge = case elementTarget of
Just elem -> elem
_ -> ?what
let
input' = case input of
Just s -> s
_ -> ?hmmm
input'' <- input'
setTextContent input'' badge
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment