Background.purs 997 B

1234567891011121314151617181920212223242526272829
  1. module ExampleWebExt.Background where
  2. import Prelude
  3. import Browser.WebExt.BrowserAction (onClickedAddListener)
  4. import Browser.WebExt.Listener (mkListener)
  5. import Browser.WebExt.Message (mkMessage)
  6. import Browser.WebExt.Runtime (onMessageAddListener)
  7. import Browser.WebExt.Tabs (Tab)
  8. import Browser.WebExt.Tabs as Tabs
  9. import Effect (Effect)
  10. import Effect.Class (class MonadEffect)
  11. import Effect.Class.Console (log, logShow)
  12. import ExampleWebExt.RuntimeMessage (RuntimeMessage, mkRuntimeMessageHandler)
  13. main :: Effect Unit
  14. main = do
  15. log "[bg] starting up"
  16. onClickedAddListener $ mkListener browserActionOnClickedHandler
  17. onMessageAddListener $ mkRuntimeMessageHandler contentScriptMessageHandler
  18. browserActionOnClickedHandler :: Tab -> Effect Unit
  19. browserActionOnClickedHandler tab = do
  20. _ <- Tabs.sendMessage tab.id $ mkMessage { clicked: tab.id }
  21. pure unit
  22. contentScriptMessageHandler ∷ ∀ m. MonadEffect m => RuntimeMessage → m Unit
  23. contentScriptMessageHandler m = logShow m