Skip to content

Commit 1769a5c

Browse files
committed
fix: app_builder example refactor
1 parent 1756151 commit 1769a5c

File tree

1 file changed

+49
-49
lines changed
  • examples/app_builder/src

1 file changed

+49
-49
lines changed

examples/app_builder/src/lib.rs

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2,55 +2,30 @@ use seed::{prelude::*, *};
22
use web_sys;
33

44
// ------ ------
5-
// Model
5+
// Before Mount
66
// ------ ------
77

8-
#[derive(Default)]
9-
struct Model {
10-
clicks: u32,
8+
fn before_mount(_: Url) -> BeforeMount {
9+
BeforeMount::new()
10+
.mount_point("main")
11+
.mount_type(MountType::Takeover)
1112
}
1213

1314
// ------ ------
14-
// Update
15+
// Model
1516
// ------ ------
1617

17-
#[derive(Clone)]
18-
enum Msg {
19-
Clicked,
20-
UrlChanged(Url),
21-
KeyPressed(web_sys::KeyboardEvent),
22-
SayHello,
23-
}
24-
25-
fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders<Msg, GMsg>) {
26-
match msg {
27-
Msg::Clicked => model.clicks += 1,
28-
Msg::UrlChanged(url) => {
29-
log!(url);
30-
orders.skip();
31-
}
32-
Msg::KeyPressed(event) => {
33-
log!(event.key());
34-
orders.skip();
35-
}
36-
Msg::SayHello => {
37-
orders.send_g_msg(GMsg::SayHello);
38-
}
39-
}
18+
struct Model {
19+
clicks: u32,
4020
}
4121

4222
// ------ ------
43-
// View
23+
// After Mount
4424
// ------ ------
4525

46-
fn view(model: &Model) -> impl View<Msg> {
47-
vec![
48-
button![
49-
format!("Clicked: {}", model.clicks),
50-
simple_ev(Ev::Click, Msg::Clicked),
51-
],
52-
button!["Say hello", simple_ev(Ev::Click, Msg::SayHello),],
53-
]
26+
fn after_mount(_: Url, _: &mut impl Orders<Msg, GMsg>) -> AfterMount<Model> {
27+
let model = Model { clicks: 0 };
28+
AfterMount::new(model).url_handling(UrlHandling::None)
5429
}
5530

5631
// ------ ------
@@ -65,7 +40,7 @@ fn routes(url: Url) -> Option<Msg> {
6540
// Window Events
6641
// ------ ------
6742

68-
fn window_events(_model: &Model) -> Vec<Listener<Msg>> {
43+
fn window_events(_: &Model) -> Vec<Listener<Msg>> {
6944
vec![keyboard_ev(Ev::KeyDown, Msg::KeyPressed)]
7045
}
7146

@@ -78,28 +53,53 @@ enum GMsg {
7853
SayHello,
7954
}
8055

81-
fn sink(g_msg: GMsg, _model: &mut Model, _orders: &mut impl Orders<Msg, GMsg>) {
56+
fn sink(g_msg: GMsg, _: &mut Model, _: &mut impl Orders<Msg, GMsg>) {
8257
match g_msg {
8358
GMsg::SayHello => log!("Hello!"),
8459
}
8560
}
8661

8762
// ------ ------
88-
// Before Mount
63+
// Update
8964
// ------ ------
9065

91-
fn before_mount(_: Url) -> BeforeMount {
92-
BeforeMount::new()
93-
.mount_point("main")
94-
.mount_type(MountType::Takeover)
66+
#[derive(Clone)]
67+
enum Msg {
68+
Clicked,
69+
UrlChanged(Url),
70+
KeyPressed(web_sys::KeyboardEvent),
71+
SayHello,
72+
}
73+
74+
fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders<Msg, GMsg>) {
75+
match msg {
76+
Msg::Clicked => model.clicks += 1,
77+
Msg::UrlChanged(url) => {
78+
log!(url);
79+
orders.skip();
80+
}
81+
Msg::KeyPressed(event) => {
82+
log!(event.key());
83+
orders.skip();
84+
}
85+
Msg::SayHello => {
86+
orders.send_g_msg(GMsg::SayHello);
87+
}
88+
}
9589
}
9690

9791
// ------ ------
98-
// After Mount
92+
// View
9993
// ------ ------
10094

101-
fn after_mount(_: Url, _orders: &mut impl Orders<Msg, GMsg>) -> AfterMount<Model> {
102-
AfterMount::new(Model { clicks: 0 }).url_handling(UrlHandling::None)
95+
fn view(model: &Model) -> impl View<Msg> {
96+
vec![
97+
button![
98+
format!("Clicked: {}", model.clicks),
99+
simple_ev(Ev::Click, Msg::Clicked),
100+
],
101+
button!["Say hello", simple_ev(Ev::Click, Msg::SayHello),],
102+
]
103103
}
104104

105105
// ------ ------
@@ -109,10 +109,10 @@ fn after_mount(_: Url, _orders: &mut impl Orders<Msg, GMsg>) -> AfterMount<Model
109109
#[wasm_bindgen(start)]
110110
pub fn render() {
111111
App::builder(update, view)
112+
.before_mount(before_mount)
113+
.after_mount(after_mount)
112114
.routes(routes)
113115
.window_events(window_events)
114116
.sink(sink)
115-
.before_mount(before_mount)
116-
.after_mount(after_mount)
117117
.build_and_start();
118118
}

0 commit comments

Comments
 (0)