39 lines
916 B
Rust
39 lines
916 B
Rust
use crate::navbar::Navbar;
|
|
use crate::pages::{greet::Greet, home::Home, news::News};
|
|
use yew::prelude::*;
|
|
use yew_router::prelude::*;
|
|
|
|
#[derive(Clone, Routable, PartialEq)]
|
|
pub enum Route {
|
|
#[at("/")]
|
|
Home,
|
|
#[at("/news")]
|
|
News,
|
|
#[at("/greet")]
|
|
Greet,
|
|
#[not_found]
|
|
#[at("/404")]
|
|
NotFound,
|
|
}
|
|
|
|
fn switch(routes: Route) -> Html {
|
|
match routes {
|
|
Route::Home => html! { <Home /> },
|
|
Route::News => html! { <News /> },
|
|
Route::Greet => html! { <Greet /> },
|
|
Route::NotFound => html! { <h1 class="status-msg">{ "404 - Not Found" }</h1> },
|
|
}
|
|
}
|
|
|
|
#[function_component(App)]
|
|
pub fn app() -> Html {
|
|
html! {
|
|
<BrowserRouter>
|
|
<div class="feed-container">
|
|
<Switch<Route> render={switch} />
|
|
</div>
|
|
<Navbar /> // Die Navbar schwebt dank 'fixed' über dem Container
|
|
</BrowserRouter>
|
|
}
|
|
}
|