haskell-halogen-core-0.9.0: src/Halogen/Query/Event.hs
module Halogen.Query.Event where
import HPrelude
import Halogen.Subscription
import Halogen.VDom.DOM.Monad
import Web.Event.Event
eventListener
:: (MonadDOM m)
=> EventType
-> EventTarget
-> (Event -> Maybe a)
-> Emitter m a
eventListener eventType target f =
makeEmitter $ \push -> do
listener <- mkEventListener $ \ev -> traverse_ push (f ev)
addEventListener eventType listener target
pure $ removeEventListener eventType listener target