lustre/event
Functions
pub fn checked(event: Dynamic) -> Result(Bool, List(DecodeError))
Similar to value, decoding a checkbox’s checked state is common
enough to warrant a dedicated decoder. This attempts to decode
event.target.checked as a boolean.
pub fn emit(event: String, data: Json) -> Effect(a)
Dispatches a custom message from a Lustre component. This lets components communicate with their parents the same way native DOM elements do.
Any JSON-serialisable payload can be attached as additional data for any
event listeners to decode. This data will be on the event’s detail property.
pub fn mouse_position(
event: Dynamic,
) -> Result(#(Float, Float), List(DecodeError))
Decodes the mouse position from any event that has a clientX and clientY
property.
pub fn on(
name: String,
handler: fn(Dynamic) -> Result(a, List(DecodeError)),
) -> Attribute(a)
Listens for the given event and applies the handler to the event object. If
the handler returns an Ok the resulting message will be dispatched, otherwise
the event (and any decoding error) will be ignored.
The event name is typically an all-lowercase string such as “click” or “mousemove”. If you’re listening for non-standard events (like those emitted by a custom element) their event names might be slightly different.
pub fn on_keydown(msg: fn(String) -> a) -> Attribute(a)
Listens for key down events on an element, and dispatches a message with the current key being pressed.
pub fn on_keypress(msg: fn(String) -> a) -> Attribute(a)
Listens for key presses on an element, and dispatches a message with the current key being pressed.
pub fn on_keyup(msg: fn(String) -> a) -> Attribute(a)
Listens for key up events on an element, and dispatches a message with the current key being released.
pub fn on_mouse_down(msg: a) -> Attribute(a)
pub fn on_mouse_enter(msg: a) -> Attribute(a)
pub fn on_mouse_leave(msg: a) -> Attribute(a)
pub fn on_mouse_out(msg: a) -> Attribute(a)
pub fn on_mouse_over(msg: a) -> Attribute(a)
pub fn on_mouse_up(msg: a) -> Attribute(a)
pub fn on_submit(msg: a) -> Attribute(a)
Listens for the form’s submit event, and dispatches the given message. This
will automatically call prevent_default to stop the form
from submitting.
pub fn prevent_default(event: Dynamic) -> Nil
Calls an event’s preventDefault method. If the Dynamic does not have a
preventDefault method, this function does nothing.
As the name implies, preventDefault will prevent any default action associated
with an event from occuring. For example, if you call preventDefault on a
submit event, the form will not be submitted.
See: https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault
pub fn stop_propagation(event: Dynamic) -> Nil
Calls an event’s stopPropagation method. If the Dynamic does not have a
stopPropagation method, this function does nothing.
Stopping event propagation means the event will not “bubble” up to parent elements. If any elements higher up in the DOM have event listeners for the same event, they will not be called.
See: https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation