Remove nested error handling and clean up some

This commit is contained in:
Nathan McRae
2025-07-27 15:28:57 -07:00
parent 833fbf27d7
commit c21baccba9
2 changed files with 22 additions and 25 deletions

View File

@@ -2,7 +2,9 @@
<head> <head>
</head> </head>
<body> <body>
<div id="svgContainer" class="my-class"></div> ticks:
<input type="number" id="ticks"/>
<div id="svg-container" class="my-class"></div>
</body> </body>
<script src="index.js"></script> <script src="index.js"></script>
</html> </html>

View File

@@ -19,14 +19,11 @@ import Web.DOM.Document (contentType
) )
import Web.DOM.DOMParser (makeDOMParser, parseSVGFromString) import Web.DOM.DOMParser (makeDOMParser, parseSVGFromString)
import Web.DOM.Element (toNode) as Element import Web.DOM.Element (toNode) as Element
import Web.DOM.HTMLCollection (length)
import Web.DOM.Node (appendChild, nodeName, setTextContent) import Web.DOM.Node (appendChild, nodeName, setTextContent)
import Web.DOM.NonElementParentNode (getElementById) import Web.DOM.NonElementParentNode (getElementById)
import Web.DOM.ParentNode (firstElementChild) import Web.DOM.ParentNode (firstElementChild)
import Web.HTML (window) import Web.HTML (window)
import Web.HTML.HTMLDocument (toDocument) import Web.HTML.HTMLDocument (toDocument)
import Web.HTML.HTMLMetaElement (setContent)
import Web.HTML.HTMLDivElement (fromElement)
import Web.HTML.Window (document) import Web.HTML.Window (document)
-- Consider DOM.Simple.Types -- Consider DOM.Simple.Types
@@ -36,26 +33,24 @@ main = do
w <- window w <- window
d <- document w d <- document w
let dd = toDocument d let dd = toDocument d
dUrl <- url dd
let containerID = "svgContainer"
domParser <- makeDOMParser domParser <- makeDOMParser
let mySVG = ternaryGraph 100.0 50.0 50.0 10
svgDoc <- parseSVGFromString mySVG domParser let containerID = "svg-container"
maybeElement <- getElementById containerID $ toNonElementParentNode dd maybeElement <- getElementById containerID $ toNonElementParentNode dd
case maybeElement of node <- case maybeElement of
Nothing -> do Nothing -> throw $ "Unable to find " <> containerID
throw $ "Unable to find " <> containerID Just e -> pure $ Element.toNode e
Just e -> do
let node = Element.toNode e let mySVG = ternaryGraph 100.0 50.0 50.0 10
case svgDoc of svgDocMay <- parseSVGFromString mySVG domParser
Left error -> throw error svgDoc <- case svgDocMay of
Right doc -> do Left error -> throw error
log $ nodeName (toNode doc) Right doc -> pure doc
elMay <- firstElementChild $ toParentNode doc
case elMay of elMay <- firstElementChild $ toParentNode svgDoc
Nothing -> throw "oops" svgNode <- case elMay of
Just el -> do Nothing -> throw "no child in svg doc"
let svgNode = Element.toNode el Just el -> pure $ Element.toNode el
log $ nodeName svgNode
newNode <- importNode svgNode true dd newNode <- importNode svgNode true dd
appendChild newNode node appendChild newNode node