lustre/effect
Types
Functions
pub fn from(effect: fn(fn(a) -> Nil) -> Nil) -> Effect(a)
Create a Effect
from some custom side effect. This is mostly useful for
package authors, or for integrating other libraries into your Lustre app.
We pass in a function that recieves a dispatch
callback that can be used
to send messages to the Lustre runtime. We could, for example, create a tick
command that uses the setTimeout
JavaScript API to send a message to the
runtime every second:
import lustre/effect.{Effect}
external fn set_interval(callback: fn() -> any, interval: Int) =
"" "window.setInterval"
pub fn every_second(msg: msg) -> Effect(msg) {
use dispatch <- effect.from
set_interval(fn() { dispatch(msg) }, 1000)
}