aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHayleigh Thompson <me@hayleigh.dev>2023-07-23 19:08:07 +0100
committerHayleigh Thompson <me@hayleigh.dev>2023-07-23 19:08:07 +0100
commit973d721a032bb5db96f8f3736ac84386a9456540 (patch)
tree7829bb4e5b4b0577698f651cb83115e613e60357
parent6dbc78d1fb36ef6c4107bf70972ac7bae06f6fc4 (diff)
downloadlustre-973d721a032bb5db96f8f3736ac84386a9456540.tar.gz
lustre-973d721a032bb5db96f8f3736ac84386a9456540.zip
:sparkles: Add functions for prevent_default and stop_propagation on events.
-rw-r--r--src/lustre.ffi.mjs5
-rw-r--r--src/lustre/event.gleam10
2 files changed, 15 insertions, 0 deletions
diff --git a/src/lustre.ffi.mjs b/src/lustre.ffi.mjs
index 38b3a95..2ebb0a9 100644
--- a/src/lustre.ffi.mjs
+++ b/src/lustre.ffi.mjs
@@ -127,6 +127,11 @@ export const emit = (name, data) =>
emit(name, data);
});
+// HTML EVENTS -----------------------------------------------------------------
+
+export const prevent_default = (e) => e.preventDefault?.();
+export const stop_propagation = (e) => e.stopPropagation?.();
+
// CUSTOM ELEMENTS -------------------------------------------------------------
export const setup_component = (
diff --git a/src/lustre/event.gleam b/src/lustre/event.gleam
index e8a2590..8ee2f4f 100644
--- a/src/lustre/event.gleam
+++ b/src/lustre/event.gleam
@@ -172,3 +172,13 @@ pub fn mouse_position(event: Dynamic) -> Decoded(#(Float, Float)) {
Ok(#(x, y))
}
+
+// UTILS -----------------------------------------------------------------------
+
+@target(javascript)
+@external(javascript, "../lustre.ffi.mjs", "prevent_default")
+pub fn prevent_default(event: Dynamic) -> Nil
+
+@target(javascript)
+@external(javascript, "../lustre.ffi.mjs", "stop_propagation")
+pub fn stop_propagation(event: Dynamic) -> Nil