From 973d721a032bb5db96f8f3736ac84386a9456540 Mon Sep 17 00:00:00 2001 From: Hayleigh Thompson Date: Sun, 23 Jul 2023 19:08:07 +0100 Subject: :sparkles: Add functions for prevent_default and stop_propagation on events. --- src/lustre.ffi.mjs | 5 +++++ src/lustre/event.gleam | 10 ++++++++++ 2 files changed, 15 insertions(+) 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 -- cgit v1.2.3