Browse Source

Add the waiting loop

jherve 2 years ago
parent
commit
a58d308717
1 changed files with 9 additions and 1 deletions
  1. 9 1
      src/Content.purs

+ 9 - 1
src/Content.purs

@@ -6,10 +6,13 @@ import Browser.DOM (getBrowserDom)
 import Browser.WebExt.Runtime (MessageSender)
 import Browser.WebExt.Runtime (MessageSender)
 import Data.Either (Either(..))
 import Data.Either (Either(..))
 import Effect (Effect)
 import Effect (Effect)
+import Effect.Aff (launchAff_)
+import Effect.Class (liftEffect)
 import Effect.Class.Console (logShow, warn)
 import Effect.Class.Console (logShow, warn)
 import Effect.Console (log)
 import Effect.Console (log)
 import ExampleWebExt.RuntimeMessage (RuntimeMessage(..), onRuntimeMessageAddListener, sendMessageToBackground)
 import ExampleWebExt.RuntimeMessage (RuntimeMessage(..), onRuntimeMessageAddListener, sendMessageToBackground)
 import LinkedIn (extractFromDocument, getContext)
 import LinkedIn (extractFromDocument, getContext)
+import LinkedIn.Loadable (waitFor)
 import LinkedIn.PageUrl (PageUrl(..))
 import LinkedIn.PageUrl (PageUrl(..))
 
 
 main :: Effect Unit
 main :: Effect Unit
@@ -34,7 +37,12 @@ colorAlreadyVisitedOffers = log "[content] Coloring of job offers is not impleme
 
 
 backgroundMessageHandler ∷ RuntimeMessage -> MessageSender → Effect Unit
 backgroundMessageHandler ∷ RuntimeMessage -> MessageSender → Effect Unit
 backgroundMessageHandler m _ = case m of
 backgroundMessageHandler m _ = case m of
-  RuntimeMessageRequestPageContent -> extractDataAndSendToBackground
+  RuntimeMessageRequestPageContent -> launchAff_ do
+    dom <- liftEffect getBrowserDom
+    -- If we are here we know that we are looking for a job offer.
+    -- TODO: Remove this dirty hack once "Loadable" typeclass is integrated
+    _ <- waitFor 200 50 ".job-details-jobs-unified-top-card__job-insight span[aria-hidden]" dom
+    liftEffect extractDataAndSendToBackground
 
 
   m -> logShow m
   m -> logShow m