use super::RouteDef;
use std::sync::Arc;
use web_sys::window;
#[derive(Clone)]
pub struct Router {
#[allow(unused)]
router: Arc<actix_router::Router<RouteDef>>,
}
impl Router {
pub fn new(route_defs: &[RouteDef]) -> Self {
let mut builder = actix_router::Router::build();
for route_def in route_defs.iter() {
builder.path(&route_def.path, route_def.clone());
}
let router = Arc::new(builder.finish());
Self { router }
}
pub fn init(&self) -> anyhow::Result<()> {
let _href = window()
.and_then(|win| win.location().href().ok())
.expect("Could not access window location");
web_sys::console::log_1(&"Initialized router".into());
Ok(())
}
}