mod components; use components::*; use gloo_net::http::Request; use gloo_storage::{LocalStorage, Storage}; use yew::prelude::*; use yew_router::prelude::*; #[derive(Clone, Routable, PartialEq)] enum Route { #[at("/")] Home, #[at("/about")] About, #[at("/test")] Test, #[at("/404")] NotFound, } #[function_component(About)] fn about() -> Html { let _history = use_history().unwrap(); let test: String = LocalStorage::get("test").unwrap_or(String::from("nop")); html! { <>

{ "À propos" }

{ test }

} } fn switch(route: &Route) -> Html { match route { Route::Home => html! { }, Route::About => html! { }, Route::NotFound => html! {

{"404, déso"}

}, Route::Test => html! { }, } } #[function_component(App)] fn app() -> Html { html! { render={Switch::render(switch)} /> } } fn main() { wasm_logger::init(wasm_logger::Config::default()); yew::start_app::(); } #[function_component(Test)] fn test() -> Html { let test = use_state(|| String::from("")); { let test = test.clone(); wasm_bindgen_futures::spawn_local(async move { if let Ok(o) = Request::get("/test").send().await { test.set(o.text().await.unwrap()) } else { test.set(String::from("Pas de connexion !!")) }; }); } html! { <>

{ "Moi !!!" }

{ (*test).clone() }

} }