summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2025-01-28 11:41:22 -0500
committerLLLL Colonq <llll@colonq>2025-01-28 11:41:38 -0500
commitd03675f9effa443811f054578f7c24e17adbd6dc (patch)
treee4b2b9d90d80576f84bda290ce3145a7525be3cd
parent91e2134e6ccfa0536314248545c88db01c1dc711 (diff)
Fix missing panel situation
-rw-r--r--src/Main/Greencircle.purs5
-rw-r--r--src/Utils.purs10
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