Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Example where
- import Prelude
- import FRP.Event (Event)
- import FRP.Event (create) as Event
- import Web.Event.EventTarget (addEventListener, eventListener) as DOM
- import Web.HTML (window) as DOM
- import Web.HTML.Event.EventTypes (online, offline) as DOMEvent
- import Web.HTML.Window (toEventTarget) as Window
- data NetworkStatus
- = Online
- | Offline
- networkStatus :: Effect (Event NetworkStatus)
- networkStatus = do
- { event, push } <- Event.create
- window <- DOM.window <#> Window.toEventTarget
- onlineListener <- DOM.eventListener \_ -> push Online
- offlineListener <- DOM.eventListener \_ -> push Offline
- DOM.addEventListener DOMEvent.online onlineListener false window
- DOM.addEventListener DOMEvent.offline offlineListener false window
- pure event
Add Comment
Please, Sign In to add comment