freya_router/components/
router.rs

1use freya_core::prelude::*;
2
3use crate::{
4    components::outlet,
5    routable::Routable,
6    router_cfg::RouterConfig,
7};
8
9/// A component that renders the current route.
10pub fn router<R: Routable + Clone>(init: impl FnOnce() -> RouterConfig<R>) -> impl IntoElement {
11    use crate::prelude::{
12        RouterContext,
13        outlet::OutletContext,
14    };
15
16    use_hook(|| {
17        provide_context(RouterContext::new::<R>(init()));
18        provide_context(OutletContext::<R>::new());
19    });
20
21    outlet::<R>()
22}