diff options
author | Eileen Noonan <enoonan@arcstone.com> | 2024-03-22 15:26:14 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-22 19:26:14 +0000 |
commit | 1d8d13d766b6467188cbded28d103ffb13421c77 (patch) | |
tree | ebfb5ed7e62463b6392a6f133ae675b65e97ac0c /examples/04-custom-event-handlers/src/app.gleam | |
parent | e85bc4729a15d9af5af5345151178afe849036ba (diff) | |
download | lustre-1d8d13d766b6467188cbded28d103ffb13421c77.tar.gz lustre-1d8d13d766b6467188cbded28d103ffb13421c77.zip |
🔀 Write a readme for example 04-custom-event-handlers. (#72)
* readme for example 04
* Update README.md
tweaks
Diffstat (limited to 'examples/04-custom-event-handlers/src/app.gleam')
-rw-r--r-- | examples/04-custom-event-handlers/src/app.gleam | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/examples/04-custom-event-handlers/src/app.gleam b/examples/04-custom-event-handlers/src/app.gleam index 35a6831..aa9638c 100644 --- a/examples/04-custom-event-handlers/src/app.gleam +++ b/examples/04-custom-event-handlers/src/app.gleam @@ -60,16 +60,13 @@ fn view(model: Model) -> Element(Msg) { let styles = [#("width", "100vw"), #("height", "100vh"), #("padding", "1rem")] let length = int.to_string(model.length) let max = int.to_string(model.max) - let on_input = fn(event) { + let make_it_loud = fn(event) -> Result(Msg, List(dynamic.DecodeError)) { use target <- result.try(dynamic.field("target", dynamic.dynamic)(event)) use value <- result.try(dynamic.field("value", dynamic.string)(target)) - // Decoding the `value` from anevent target is so common we provider a decoder - // for it already: - // - // use value <- result.try(event.value(event)) + let loud = string.uppercase(value) - Ok(GotInput(value)) + Ok(GotInput(loud)) } ui.centre( @@ -78,8 +75,8 @@ fn view(model: Model) -> Element(Msg) { [aside.content_first(), aside.align_centre()], ui.field( [], - [element.text("Write a message:")], - ui.input([attribute.value(model.value), event.on("input", on_input)]), + [element.text("Write a LOUD message:")], + ui.input([attribute.value(model.value), event.on("input", make_it_loud)]), [element.text(length <> "/" <> max)], ), ui.button([event.on_click(Reset)], [element.text("Reset")]), |