mentorenwahl/frontend/src/main.rs

40 lines
949 B
Rust
Raw Normal View History

2022-11-12 21:50:06 +00:00
use std::rc::Rc;
2022-11-04 20:23:36 +00:00
use yew::prelude::*;
use yew_router::prelude::*;
2022-11-12 21:50:06 +00:00
use yew_side_effect::title::TitleProvider;
2022-11-04 20:23:36 +00:00
2022-11-05 20:27:49 +00:00
use frontend::routes;
2022-11-04 20:23:36 +00:00
#[global_allocator]
static ALLOC: wee_alloc::WeeAlloc = wee_alloc::WeeAlloc::INIT;
2022-11-05 20:27:49 +00:00
pub struct App;
impl Component for App {
type Message = ();
type Properties = ();
fn create(_ctx: &Context<Self>) -> Self {
Self
}
2022-11-04 20:23:36 +00:00
2022-11-05 20:27:49 +00:00
fn view(&self, _ctx: &Context<Self>) -> Html {
2022-11-12 21:50:06 +00:00
let format_title =
Rc::new(|m: &str| format!("{} | dergrimm.net", m)) as Rc<dyn Fn(&str) -> String>;
2022-11-05 20:27:49 +00:00
html! {
<BrowserRouter>
2022-11-12 21:50:06 +00:00
<TitleProvider default_title="Mentorenwahl | dergrimm.net" {format_title}>
<Switch<routes::Route> render={Switch::render(routes::switch)} />
</TitleProvider>
2022-11-05 20:27:49 +00:00
</BrowserRouter>
}
2022-11-04 20:23:36 +00:00
}
}
fn main() {
wasm_logger::init(wasm_logger::Config::default());
yew::start_app::<App>();
}