aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHayleigh Thompson <me@hayleigh.dev>2023-12-22 01:10:59 +0000
committerHayleigh Thompson <me@hayleigh.dev>2023-12-22 11:01:21 +0000
commit76a166736135a522a740b24d776a2e3b9656fdbd (patch)
tree75d7fa60c69f850dd2e46a386ae5ed3db0eb4438
parentfb0e3a9b1835dc30ba196ddb630f02f9d554978a (diff)
downloadlustre-76a166736135a522a740b24d776a2e3b9656fdbd.tar.gz
lustre-76a166736135a522a740b24d776a2e3b9656fdbd.zip
:heavy_plus_sign: Upgrade to Gleam v0.33.0
-rw-r--r--.github/workflows/release.yml2
-rw-r--r--examples/components.gleam34
-rw-r--r--examples/counter.gleam15
-rw-r--r--examples/input.gleam82
-rw-r--r--examples/svg.gleam20
-rw-r--r--gleam.toml2
-rw-r--r--manifest.toml4
-rw-r--r--src/lustre.gleam4
-rw-r--r--src/lustre/attribute.gleam11
-rw-r--r--src/lustre/element.gleam9
10 files changed, 80 insertions, 103 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 0b8ad1e..4402f20 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -12,7 +12,7 @@ jobs:
- uses: erlef/setup-beam@v1.16.0
with:
otp-version: "26.0.2"
- gleam-version: "0.32.1"
+ gleam-version: "0.33.0"
- run: cargo install tomlq
- run: |
if [ "v$(tomlq version -f gleam.toml)" == "${{ github.ref_name }}" ]; then
diff --git a/examples/components.gleam b/examples/components.gleam
index b87cf84..e813708 100644
--- a/examples/components.gleam
+++ b/examples/components.gleam
@@ -56,18 +56,15 @@ fn update(history, msg) {
fn view(history) {
let on_custom_click = event.on("custom-click", function.constant(Ok("click")))
- div(
- [],
- [
- button([event.on_click("reset")], [text("Reset")]),
- ol([], list.map(history, fn(msg) { li([], [text(msg)]) })),
- element(
- "custom-counter",
- [on_custom_click, attribute.property("count", list.length(history))],
- [ol([], list.map(history, fn(msg) { li([], [text(msg)]) }))],
- ),
- ],
- )
+ div([], [
+ button([event.on_click("reset")], [text("Reset")]),
+ ol([], list.map(history, fn(msg) { li([], [text(msg)]) })),
+ element(
+ "custom-counter",
+ [on_custom_click, attribute.property("count", list.length(history))],
+ [ol([], list.map(history, fn(msg) { li([], [text(msg)]) }))],
+ ),
+ ])
}
// COUNTER ---------------------------------------------------------------------
@@ -89,12 +86,9 @@ fn counter_update(count, msg) {
}
fn counter_view(count) {
- div(
- [],
- [
- button([event.on_click(Clicked)], [text("Click me!")]),
- p([], [text("Count: "), text(int.to_string(count))]),
- slot([]),
- ],
- )
+ div([], [
+ button([event.on_click(Clicked)], [text("Click me!")]),
+ p([], [text("Count: "), text(int.to_string(count))]),
+ slot([]),
+ ])
}
diff --git a/examples/counter.gleam b/examples/counter.gleam
index ab453da..37af39a 100644
--- a/examples/counter.gleam
+++ b/examples/counter.gleam
@@ -44,13 +44,10 @@ pub fn update(model: Model, msg: Msg) -> Model {
// VIEW ------------------------------------------------------------------------
pub fn view(model: Model) -> Element(Msg) {
- div(
- [],
- [
- button([event.on_click(Incr)], [text("+")]),
- button([event.on_click(Decr)], [text("-")]),
- button([event.on_click(Reset)], [text("Reset")]),
- p([], [text(int.to_string(model))]),
- ],
- )
+ div([], [
+ button([event.on_click(Incr)], [text("+")]),
+ button([event.on_click(Decr)], [text("-")]),
+ button([event.on_click(Reset)], [text("Reset")]),
+ p([], [text(int.to_string(model))]),
+ ])
}
diff --git a/examples/input.gleam b/examples/input.gleam
index 62338a2..6425b0c 100644
--- a/examples/input.gleam
+++ b/examples/input.gleam
@@ -57,26 +57,20 @@ fn update(model: Model, msg: Msg) -> Model {
// RENDER ----------------------------------------------------------------------
fn view(model: Model) -> Element(Msg) {
- div(
- [attribute.class("container")],
- [
- card([
- email_input(model.email),
- password_input(model.password),
- remember_checkbox(model.remember_me),
- pre(
- [attribute.class("debug")],
- [
- string.inspect(model)
- |> string.replace("(", "(\n ")
- |> string.replace(", ", ",\n ")
- |> string.replace(")", "\n)")
- |> text,
- ],
- ),
+ div([attribute.class("container")], [
+ card([
+ email_input(model.email),
+ password_input(model.password),
+ remember_checkbox(model.remember_me),
+ pre([attribute.class("debug")], [
+ string.inspect(model)
+ |> string.replace("(", "(\n ")
+ |> string.replace(", ", ",\n ")
+ |> string.replace(")", "\n)")
+ |> text,
]),
- ],
- )
+ ]),
+ ])
}
fn card(content: List(Element(a))) -> Element(a) {
@@ -98,35 +92,29 @@ fn render_input(
value: String,
label_: String,
) -> Element(Msg) {
- div(
- [attribute.class("input")],
- [
- label([attribute.for(id)], [text(label_)]),
- input([
- attribute.id(id),
- attribute.name(id),
- attribute.type_(type_),
- attribute.required(True),
- attribute.value(dynamic.from(value)),
- event.on_input(fn(value) { Typed(field, value) }),
- ]),
- ],
- )
+ div([attribute.class("input")], [
+ label([attribute.for(id)], [text(label_)]),
+ input([
+ attribute.id(id),
+ attribute.name(id),
+ attribute.type_(type_),
+ attribute.required(True),
+ attribute.value(dynamic.from(value)),
+ event.on_input(fn(value) { Typed(field, value) }),
+ ]),
+ ])
}
fn remember_checkbox(checked: Bool) -> Element(Msg) {
- div(
- [attribute.class("flex items-center")],
- [
- input([
- attribute.id("remember-me"),
- attribute.name("remember-me"),
- attribute.type_("checkbox"),
- attribute.checked(checked),
- attribute.class("checkbox"),
- event.on_click(Toggled(RememberMe, !checked)),
- ]),
- label([attribute.for("remember-me")], [text("Remember me")]),
- ],
- )
+ div([attribute.class("flex items-center")], [
+ input([
+ attribute.id("remember-me"),
+ attribute.name("remember-me"),
+ attribute.type_("checkbox"),
+ attribute.checked(checked),
+ attribute.class("checkbox"),
+ event.on_click(Toggled(RememberMe, !checked)),
+ ]),
+ label([attribute.for("remember-me")], [text("Remember me")]),
+ ])
}
diff --git a/examples/svg.gleam b/examples/svg.gleam
index 640867b..93be5e3 100644
--- a/examples/svg.gleam
+++ b/examples/svg.gleam
@@ -46,18 +46,14 @@ pub fn update(model: Model, msg: Msg) -> Model {
// VIEW ------------------------------------------------------------------------
pub fn view(model: Model) -> Element(Msg) {
- div(
- [],
- [
- button(
- [event.on_click(Incr)],
- [plus([attribute.style([#("color", "red")])])],
- ),
- button([event.on_click(Decr)], [minus([])]),
- button([event.on_click(Reset)], [text("Reset")]),
- p([], [text(int.to_string(model))]),
- ],
- )
+ div([], [
+ button([event.on_click(Incr)], [
+ plus([attribute.style([#("color", "red")])]),
+ ]),
+ button([event.on_click(Decr)], [minus([])]),
+ button([event.on_click(Reset)], [text("Reset")]),
+ p([], [text(int.to_string(model))]),
+ ])
}
fn plus(attrs) {
diff --git a/gleam.toml b/gleam.toml
index 9c0a40a..4b95ac9 100644
--- a/gleam.toml
+++ b/gleam.toml
@@ -15,4 +15,4 @@ internal_modules = [
]
[dependencies]
-gleam_stdlib = "~> 0.31"
+gleam_stdlib = "~> 0.34"
diff --git a/manifest.toml b/manifest.toml
index 0fb8411..c23fa90 100644
--- a/manifest.toml
+++ b/manifest.toml
@@ -2,8 +2,8 @@
# You typically do not need to edit this file
packages = [
- { name = "gleam_stdlib", version = "0.32.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "07D64C26D014CF570F8ACADCE602761EA2E74C842D26F2FD49B0D61973D9966F" },
+ { name = "gleam_stdlib", version = "0.34.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "1FB8454D2991E9B4C0C804544D8A9AD0F6184725E20D63C3155F0AEB4230B016" },
]
[requirements]
-gleam_stdlib = { version = "~> 0.31" }
+gleam_stdlib = { version = "~> 0.34" }
diff --git a/src/lustre.gleam b/src/lustre.gleam
index 523fce4..0c3f2ec 100644
--- a/src/lustre.gleam
+++ b/src/lustre.gleam
@@ -4,7 +4,7 @@
// IMPORTS ---------------------------------------------------------------------
import gleam/dynamic.{type Decoder}
-import gleam/map.{type Map}
+import gleam/dict.{type Dict}
import lustre/effect.{type Effect}
import lustre/element.{type Element}
@@ -81,7 +81,7 @@ pub fn component(
_init: fn() -> #(model, Effect(msg)),
_update: fn(model, msg) -> #(model, Effect(msg)),
_view: fn(model) -> Element(msg),
- _on_attribute_change: Map(String, Decoder(msg)),
+ _on_attribute_change: Dict(String, Decoder(msg)),
) -> Result(Nil, Error) {
Ok(Nil)
}
diff --git a/src/lustre/attribute.gleam b/src/lustre/attribute.gleam
index 9531938..d2099c9 100644
--- a/src/lustre/attribute.gleam
+++ b/src/lustre/attribute.gleam
@@ -124,13 +124,10 @@ pub fn to_string_builder(attr: Attribute(msg)) -> StringBuilder {
///
pub fn style(properties: List(#(String, String))) -> Attribute(msg) {
- attribute(
- "style",
- {
- use styles, #(name, value) <- list.fold(properties, "")
- styles <> name <> ":" <> value <> ";"
- },
- )
+ attribute("style", {
+ use styles, #(name, value) <- list.fold(properties, "")
+ styles <> name <> ":" <> value <> ";"
+ })
}
///
diff --git a/src/lustre/element.gleam b/src/lustre/element.gleam
index 25b84b4..1d18825 100644
--- a/src/lustre/element.gleam
+++ b/src/lustre/element.gleam
@@ -186,7 +186,8 @@ fn attrs_to_string_builder(
html,
class,
style,
- inner_html <> val,
+ inner_html
+ <> val,
)
Ok(#("class", val)) if class == "" -> #(html, val, style, inner_html)
Ok(#("class", val)) -> #(html, class <> " " <> val, style, inner_html)
@@ -210,7 +211,11 @@ fn attrs_to_string_builder(
_, _ ->
string_builder.append(
html,
- " class=\"" <> class <> "\" style=\"" <> style <> "\"",
+ " class=\""
+ <> class
+ <> "\" style=\""
+ <> style
+ <> "\"",
)
},
inner_html,