Forráskód Böngészése

Try to add event listeners

jherve 1 éve
szülő
commit
7de417a848
4 módosított fájl, 44 hozzáadás és 2 törlés
  1. 3 0
      extension/manifest.json
  2. 19 0
      src/Background.js
  3. 15 2
      src/Background.purs
  4. 7 0
      src/background.js

+ 3 - 0
extension/manifest.json

@@ -8,6 +8,9 @@
       "id": "new_ext@mozilla.org"
     }
   },
+  "browser_action": {
+    "default_title": "Test"
+  },
   "content_scripts": [
     {
       "matches": ["<all_urls>"],

+ 19 - 0
src/Background.js

@@ -0,0 +1,19 @@
+export function onClickedAddListener (fn) {
+  return function () {
+    return browser.browserAction.onClicked.addListener(fn);
+  }
+}
+
+export function onClickedAddListener1 (fn) {
+  return function () {
+    return browser.browserAction.onClicked.addListener(fn);
+  }
+}
+
+export function mkListenerOne (fn) {
+  return function () {
+    return function (one) {
+      return fn(one)();
+    }
+  }
+};

+ 15 - 2
src/Background.purs

@@ -2,10 +2,23 @@ module ExampleWebExt.Background where
 
 import Prelude
 
-import Effect.Console (log)
 import Effect (Effect)
+import Effect.Aff (Aff, launchAff_)
+import Effect.Class.Console (log)
+
+type Listener0 = Effect Unit
+type Listener a = (a -> Effect Unit)
+
+foreign import onClickedAddListener :: Listener0 -> Effect Unit
+foreign import onClickedAddListener1 :: forall a. Listener a -> Effect Unit
+
+foreign import mkListenerOne :: forall a. (Listener a) -> Effect (Listener a)
 
 main :: Effect Unit
 main = do
+  listener <- mkListenerOne $ \e -> do
+    log "Clicked PS 1"
   log "[bg] starting up"
-  
+  onClickedAddListener $ log "Clicked PS 0"
+  onClickedAddListener1 listener
+  log "[bg] registered"

+ 7 - 0
src/background.js

@@ -1,6 +1,13 @@
 var Background = require("../output/ExampleWebExt.Background");
 
 function main() {
+  browser.browserAction.onClicked.addListener(async (tab) => {
+    console.log("clicked !");
+  });
+  browser.browserAction.onClicked.addListener(async (tab) => {
+    console.log("clicked 2 !");
+  });
+
   Background.main();
 }