diff options
| author | LLLL Colonq <llll@colonq> | 2025-01-28 11:41:22 -0500 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2025-01-28 11:41:38 -0500 |
| commit | d03675f9effa443811f054578f7c24e17adbd6dc (patch) | |
| tree | e4b2b9d90d80576f84bda290ce3145a7525be3cd /src | |
| parent | 91e2134e6ccfa0536314248545c88db01c1dc711 (diff) | |
Fix missing panel situation
Diffstat (limited to 'src')
| -rw-r--r-- | src/Main/Greencircle.purs | 5 | ||||
| -rw-r--r-- | src/Utils.purs | 10 |
2 files changed, 10 insertions, 5 deletions
diff --git a/src/Main/Greencircle.purs b/src/Main/Greencircle.purs index 3229c6f..1870442 100644 --- a/src/Main/Greencircle.purs +++ b/src/Main/Greencircle.purs @@ -39,8 +39,9 @@ updateLive = launchAff_ do Utils.setText adj $ adjective $ Array.length names for_ names \n -> do liftEffect $ log n - p <- Utils.byId $ "lcolonq-gc-panel-" <> n - Utils.addClass "lcolonq-gc-visible" p + Utils.maybeById ("lcolonq-gc-panel-" <> n) >>= case _ of + Nothing -> liftEffect $ log "couldn't find panel" + Just p -> Utils.addClass "lcolonq-gc-visible" p main :: Effect Unit main = do diff --git a/src/Utils.purs b/src/Utils.purs index 8c530ef..e4fd125 100644 --- a/src/Utils.purs +++ b/src/Utils.purs @@ -32,11 +32,15 @@ maybeToArray :: forall a. Maybe a -> Array a maybeToArray (Just x) = [x] maybeToArray Nothing = [] -byId :: forall m. MonadEffect m => String -> m DOM.Element -byId i = do +maybeById :: forall m. MonadEffect m => String -> m (Maybe DOM.Element) +maybeById i = do w <- liftEffect HTML.window d <- liftEffect $ HTML.Doc.toDocument <$> HTML.Win.document w - liftEffect (DOM.NEP.getElementById i (DOM.Doc.toNonElementParentNode d)) >>= case _ of + liftEffect (DOM.NEP.getElementById i (DOM.Doc.toNonElementParentNode d)) + +byId :: forall m. MonadEffect m => String -> m DOM.Element +byId i = do + maybeById i >>= case _ of Nothing -> liftEffect $ throw $ "could not find element with id: " <> i Just e -> pure e |
