Kaynağa Gözat

Add FFI for setBadge / setBadgeBackground color

jherve 1 yıl önce
ebeveyn
işleme
cf64c10200

+ 8 - 0
src/Browser/WebExt/BrowserAction.js

@@ -1,3 +1,11 @@
 export function onClickedAddListenerImpl (fn) {
   return browser.browserAction.onClicked.addListener(fn);
 }
+
+export function setBadgeTextImpl(text, tabId) {
+  return browser.browserAction.setBadgeText({ text, tabId });
+}
+
+export function setBadgeBackgroundColorImpl(color, tabId) {
+  return browser.browserAction.setBadgeBackgroundColor({ color, tabId });
+}

+ 13 - 3
src/Browser/WebExt/BrowserAction.purs

@@ -1,15 +1,25 @@
 module Browser.WebExt.BrowserAction (
-  onClickedAddListener
+  onClickedAddListener,
+  setBadgeText,
+  setBadgeBackgroundColor
 ) where
 
 import Prelude
 
 import Browser.WebExt.Listener (Listener)
-import Browser.WebExt.Tabs (Tab)
+import Browser.WebExt.Tabs (Tab, TabId)
 import Effect (Effect)
-import Effect.Uncurried (EffectFn1, runEffectFn1)
+import Effect.Uncurried (EffectFn1, EffectFn2, runEffectFn1, runEffectFn2)
 
 foreign import onClickedAddListenerImpl :: EffectFn1 (Listener Tab) Unit
+foreign import setBadgeTextImpl :: EffectFn2 String TabId Unit
+foreign import setBadgeBackgroundColorImpl :: EffectFn2 String TabId Unit
 
 onClickedAddListener ∷ Listener Tab → Effect Unit
 onClickedAddListener = runEffectFn1 onClickedAddListenerImpl
+
+setBadgeText :: String -> TabId -> Effect Unit
+setBadgeText = runEffectFn2 setBadgeTextImpl
+
+setBadgeBackgroundColor :: String -> TabId -> Effect Unit
+setBadgeBackgroundColor = runEffectFn2 setBadgeBackgroundColorImpl