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>
    }
}
