|
@@ -4,11 +4,14 @@ import Prelude
|
|
|
|
|
|
|
|
import Browser.WebExt.BrowserAction (onClickedAddListener)
|
|
import Browser.WebExt.BrowserAction (onClickedAddListener)
|
|
|
import Browser.WebExt.Listener (mkListener)
|
|
import Browser.WebExt.Listener (mkListener)
|
|
|
|
|
+import Browser.WebExt.Port (Port)
|
|
|
import Browser.WebExt.Runtime (onMessageAddListener)
|
|
import Browser.WebExt.Runtime (onMessageAddListener)
|
|
|
import Browser.WebExt.Tabs (Tab)
|
|
import Browser.WebExt.Tabs (Tab)
|
|
|
|
|
+import Data.Argonaut.Decode (printJsonDecodeError)
|
|
|
|
|
+import Data.Either (Either(..))
|
|
|
import Effect (Effect)
|
|
import Effect (Effect)
|
|
|
import Effect.Aff (launchAff_)
|
|
import Effect.Aff (launchAff_)
|
|
|
-import Effect.Class (class MonadEffect)
|
|
|
|
|
|
|
+import Effect.Class (class MonadEffect, liftEffect)
|
|
|
import Effect.Class.Console (log, logShow)
|
|
import Effect.Class.Console (log, logShow)
|
|
|
import ExampleWebExt.NativeMessage (NativeMessage(..), connectToNativeApplication, onNativeMessageAddListener, sendMessageToNative)
|
|
import ExampleWebExt.NativeMessage (NativeMessage(..), connectToNativeApplication, onNativeMessageAddListener, sendMessageToNative)
|
|
|
import ExampleWebExt.RuntimeMessage (RuntimeMessage(..), mkRuntimeMessageHandler, sendMessageToContent)
|
|
import ExampleWebExt.RuntimeMessage (RuntimeMessage(..), mkRuntimeMessageHandler, sendMessageToContent)
|
|
@@ -20,11 +23,8 @@ main = do
|
|
|
port <- connectToNativeApplication "job_search_writer"
|
|
port <- connectToNativeApplication "job_search_writer"
|
|
|
onNativeMessageAddListener port nativeMessageHandler
|
|
onNativeMessageAddListener port nativeMessageHandler
|
|
|
|
|
|
|
|
- sendMessageToNative port $ NativeMessageBackground "hello"
|
|
|
|
|
- setJobsPath "/path/to/jobs"
|
|
|
|
|
- launchAff_ do
|
|
|
|
|
- path <- getJobsPath
|
|
|
|
|
- log $ "Read value of jobsPath : " <> show path
|
|
|
|
|
|
|
+ setJobsPath "/tmp/dummy/path/value"
|
|
|
|
|
+ sendConfigurationToNative port
|
|
|
|
|
|
|
|
onClickedAddListener $ mkListener browserActionOnClickedHandler
|
|
onClickedAddListener $ mkListener browserActionOnClickedHandler
|
|
|
onMessageAddListener $ mkRuntimeMessageHandler contentScriptMessageHandler
|
|
onMessageAddListener $ mkRuntimeMessageHandler contentScriptMessageHandler
|
|
@@ -40,3 +40,10 @@ contentScriptMessageHandler m = logShow m
|
|
|
|
|
|
|
|
nativeMessageHandler ∷ ∀ m. MonadEffect m ⇒ NativeMessage → m Unit
|
|
nativeMessageHandler ∷ ∀ m. MonadEffect m ⇒ NativeMessage → m Unit
|
|
|
nativeMessageHandler m = logShow m
|
|
nativeMessageHandler m = logShow m
|
|
|
|
|
+
|
|
|
|
|
+sendConfigurationToNative ∷ Port → Effect Unit
|
|
|
|
|
+sendConfigurationToNative port = launchAff_ do
|
|
|
|
|
+ path <- getJobsPath
|
|
|
|
|
+ case path of
|
|
|
|
|
+ Left l' -> log $ "Could not read value of jobsPath : " <> printJsonDecodeError l'
|
|
|
|
|
+ Right path' -> liftEffect $ sendMessageToNative port $ NativeMessageInitialConfiguration {jobsPath: path'}
|