From 083ff74b0cf40126984081d0153750ba916d38aa Mon Sep 17 00:00:00 2001 From: Rob Watson Date: Wed, 2 Sep 2020 18:28:02 +0200 Subject: [PATCH] Continue building basic page structure --- src/app.rs | 27 +++++++++++++++++++++++++++ src/canvas.rs | 25 +++++++++++++++++++++++++ src/controls.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ src/home.rs | 32 ++++++++++++++++++++++++++++++++ src/lib.rs | 28 +++++----------------------- 5 files changed, 132 insertions(+), 23 deletions(-) create mode 100644 src/app.rs create mode 100644 src/canvas.rs create mode 100644 src/controls.rs create mode 100644 src/home.rs diff --git a/src/app.rs b/src/app.rs new file mode 100644 index 0000000..601f121 --- /dev/null +++ b/src/app.rs @@ -0,0 +1,27 @@ +use wasm_bindgen::prelude::*; +use yew::prelude::*; + +use crate::home::Home; + +pub struct App {} + +impl Component for App { + type Message = (); + type Properties = (); + + fn create(_: Self::Properties, _: ComponentLink) -> Self { + Self {} + } + + fn update(&mut self, _: Self::Message) -> ShouldRender { + true + } + + fn change(&mut self, _: Self::Properties) -> ShouldRender { + false + } + + fn view(&self) -> Html { + html! { } + } +} diff --git a/src/canvas.rs b/src/canvas.rs new file mode 100644 index 0000000..4ccd317 --- /dev/null +++ b/src/canvas.rs @@ -0,0 +1,25 @@ +use wasm_bindgen::prelude::*; +use yew::prelude::*; + +pub struct Canvas {} + +impl Component for Canvas { + type Message = (); + type Properties = (); + + fn create(_: Self::Properties, _: ComponentLink) -> Self { + Self {} + } + + fn update(&mut self, _: Self::Message) -> ShouldRender { + true + } + + fn change(&mut self, _: Self::Properties) -> ShouldRender { + false + } + + fn view(&self) -> Html { + html! { } + } +} diff --git a/src/controls.rs b/src/controls.rs new file mode 100644 index 0000000..9135c92 --- /dev/null +++ b/src/controls.rs @@ -0,0 +1,43 @@ +use wasm_bindgen::prelude::*; +use yew::prelude::*; +use yew::web_sys::console; + +pub struct Controls { + link: ComponentLink, +} + +pub enum Msg { + SubmitForm, +} + +impl Component for Controls { + type Message = Msg; + type Properties = (); + + fn create(_: Self::Properties, link: ComponentLink) -> Self { + Self { link } + } + + fn update(&mut self, msg: Self::Message) -> ShouldRender { + match msg { + Msg::SubmitForm => console::log_1(&"Handle submit form".into()), + } + true + } + + fn change(&mut self, _: Self::Properties) -> ShouldRender { + false + } + + fn view(&self) -> Html { + html! { +
+ + +
+ } + } +} diff --git a/src/home.rs b/src/home.rs new file mode 100644 index 0000000..0b3763f --- /dev/null +++ b/src/home.rs @@ -0,0 +1,32 @@ +use crate::canvas::Canvas; +use crate::controls::Controls; +use wasm_bindgen::prelude::*; +use yew::prelude::*; + +pub struct Home {} + +impl Component for Home { + type Message = (); + type Properties = (); + + fn create(_: Self::Properties, _: ComponentLink) -> Self { + Self {} + } + + fn update(&mut self, _: Self::Message) -> ShouldRender { + true + } + + fn change(&mut self, _: Self::Properties) -> ShouldRender { + false + } + + fn view(&self) -> Html { + html! { +
+ + +
+ } + } +} diff --git a/src/lib.rs b/src/lib.rs index 74df7c0..ac2c30c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,30 +1,12 @@ use wasm_bindgen::prelude::*; use yew::prelude::*; -struct Home {} - -impl Component for Home { - type Message = (); - type Properties = (); - - fn create(_: Self::Properties, _: ComponentLink) -> Self { - Self {} - } - - fn update(&mut self, _: Self::Message) -> ShouldRender { - true - } - - fn change(&mut self, _: Self::Properties) -> ShouldRender { - true - } - - fn view(&self) -> Html { - html! { {"Hello World!"} } - } -} +mod app; +mod canvas; +mod controls; +mod home; #[wasm_bindgen(start)] pub fn run_app() { - App::::new().mount_to_body(); + App::::new().mount_to_body(); }