summaryrefslogtreecommitdiff
path: root/src/JavaScript.hs
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2025-04-30 22:18:15 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2025-04-30 22:39:28 +0200
commit6826651f2d3a414b0a05730a3ff577ae0922a62f (patch)
tree9061ae030283990b4b45684c0e7046fae0cfa342 /src/JavaScript.hs
parent833c42096eb8e479855bd4ca9ecbfe3bc08a1543 (diff)
Show and send direct messages
Diffstat (limited to 'src/JavaScript.hs')
-rw-r--r--src/JavaScript.hs12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/JavaScript.hs b/src/JavaScript.hs
index 7f1c0f9..21571ea 100644
--- a/src/JavaScript.hs
+++ b/src/JavaScript.hs
@@ -1,4 +1,6 @@
module JavaScript (
+ getElementById,
+
asEventListener,
addEventListener,
@@ -8,11 +10,19 @@ module JavaScript (
import GHC.Wasm.Prim
+getElementById :: String -> IO JSVal
+getElementById = js_document_getElementById . toJSString
+foreign import javascript unsafe "document.getElementById($1)"
+ js_document_getElementById :: JSString -> IO JSVal
+
foreign import javascript "wrapper"
asEventListener :: (JSVal -> IO ()) -> IO JSVal
+addEventListener :: JSVal -> String -> (JSVal -> IO ()) -> IO ()
+addEventListener obj ev cb = do
+ js_addEventListener obj (toJSString ev) =<< asEventListener cb
foreign import javascript unsafe "$1.addEventListener($2, $3)"
- addEventListener :: JSVal -> JSString -> JSVal -> IO ()
+ js_addEventListener :: JSVal -> JSString -> JSVal -> IO ()
consoleLog :: String -> IO ()
consoleLog = js_consoleLog . toJSString