use crate::components::error::error_component::ErrorComponent;
use crate::components::error::error_provider::ErrorProvider;
use crate::event_bus::EventBus;
use crate::services::websocket::WebsocketService;
use components::admin::Admin;
use components::create_achievement::CreateAchievementComponent;
use components::create_milestone::CreateMilestoneComponent;
use components::root::Root;
use std::rc::Rc;
use yew::prelude::*;
use yew_agent::Bridged;
use yew_router::BrowserRouter;
use yew_router::Routable;
use yew_router::Switch;
mod components;
pub mod event_bus;
mod services;
pub mod util;
#[derive(Debug, Clone, Copy, PartialEq, Routable)]
enum Route {
#[at("/")]
Root,
#[at("/create-achievement")]
CreateAchievement,
#[at("/create-milestone")]
CreateMilestone,
#[at("/en-lille-nisse-rejste")]
Admin,
#[not_found]
#[at("/404")]
NotFound,
}
fn switch(selected_route: Route) -> Html {
match selected_route {
Route::Root => html! {