2023-05-19 11:23:44 +02:00
|
|
|
use log::Level;
|
|
|
|
|
use yew::prelude::*;
|
|
|
|
|
use yew_router::prelude::*;
|
|
|
|
|
|
|
|
|
|
#[derive(Routable, Debug, Clone, Copy, PartialEq, Eq)]
|
|
|
|
|
enum Route {
|
|
|
|
|
#[at("/")]
|
|
|
|
|
Index,
|
2023-05-20 12:27:33 +02:00
|
|
|
#[at("/login")]
|
|
|
|
|
Login,
|
2023-05-19 11:23:44 +02:00
|
|
|
#[at("/404")]
|
|
|
|
|
#[not_found]
|
|
|
|
|
NotFound,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[function_component]
|
|
|
|
|
fn App() -> Html {
|
|
|
|
|
html! {
|
|
|
|
|
<BrowserRouter>
|
|
|
|
|
<main>
|
|
|
|
|
<Switch<Route> render={switch} />
|
|
|
|
|
</main>
|
|
|
|
|
</BrowserRouter>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn switch(route: Route) -> Html {
|
|
|
|
|
match route {
|
|
|
|
|
Route::Index => html! {
|
2023-05-20 12:27:33 +02:00
|
|
|
<Index />
|
|
|
|
|
},
|
|
|
|
|
Route::Login => html! {
|
|
|
|
|
"Login"
|
2023-05-19 11:23:44 +02:00
|
|
|
},
|
|
|
|
|
Route::NotFound => html! {
|
|
|
|
|
"Page not found"
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-20 12:27:33 +02:00
|
|
|
#[function_component]
|
|
|
|
|
fn Index() -> Html {
|
|
|
|
|
let token = use_state(|| None::<String>);
|
|
|
|
|
|
|
|
|
|
match &*token {
|
|
|
|
|
Some(_) => html! {
|
|
|
|
|
"Index"
|
|
|
|
|
},
|
|
|
|
|
None => html! {
|
|
|
|
|
<Redirect<Route> to={Route::Login} />
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-19 11:23:44 +02:00
|
|
|
fn main() {
|
|
|
|
|
console_log::init_with_level(Level::Debug).unwrap();
|
|
|
|
|
|
|
|
|
|
yew::Renderer::<App>::new().render();
|
|
|
|
|
}
|