Guest User

Untitled

a guest
Jul 16th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. module Example where
  2.  
  3. import Prelude
  4.  
  5. import FRP.Event (Event)
  6. import FRP.Event (create) as Event
  7. import Web.Event.EventTarget (addEventListener, eventListener) as DOM
  8. import Web.HTML (window) as DOM
  9. import Web.HTML.Event.EventTypes (online, offline) as DOMEvent
  10. import Web.HTML.Window (toEventTarget) as Window
  11.  
  12.  
  13. data NetworkStatus
  14. = Online
  15. | Offline
  16.  
  17. networkStatus :: Effect (Event NetworkStatus)
  18. networkStatus = do
  19. { event, push } <- Event.create
  20. window <- DOM.window <#> Window.toEventTarget
  21. onlineListener <- DOM.eventListener \_ -> push Online
  22. offlineListener <- DOM.eventListener \_ -> push Offline
  23. DOM.addEventListener DOMEvent.online onlineListener false window
  24. DOM.addEventListener DOMEvent.offline offlineListener false window
  25. pure event
Add Comment
Please, Sign In to add comment