Move the history provider into the context (#3048)
* move history providers into a separate crate * start moving route providers into the renderers * clean up intoroutable * remove into routable * fix router tests * Provide history providers in each renderer * implement nested routers * move the lens out of the history crate * re-export dioxus history trait in the prelude * also re-export the history function * fix history doctests * some light cleanups --------- Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
This commit is contained in:
1 parent
e5a1a62644
commit
281087469a
48 files changed
+875
-1419
No files matched your search
@@ -242,7 +242,23 @@ impl Route {
|
||||
quote! {
|
||||
#[allow(unused)]
|
||||
(#last_index.., Self::#name { #field_name, .. }) => {
|
||||
#field_name.render(level - #last_index)
|
||||
rsx! {
|
||||
dioxus_router::components::child_router::ChildRouter {
|
||||
route: #field_name,
|
||||
// Try to parse the current route as a parent route, and then match it as a child route
|
||||
parse_route_from_root_route: |__route| if let Ok(__route) = __route.parse() {
|
||||
if let Self::#name { #field_name, .. } = __route {
|
||||
Some(#field_name)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
} else {
|
||||
None
|
||||
},
|
||||
// Try to parse the child route and turn it into a parent route
|
||||
format_route_as_root_route: |#field_name| Self::#name { #field_name: #field_name }.to_string(),
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -274,7 +274,7 @@ pub(crate) enum RouteTreeSegmentData<'a> {
|
||||
Redirect(&'a Redirect),
|
||||
}
|
||||
|
||||
impl<'a> RouteTreeSegmentData<'a> {
|
||||
impl RouteTreeSegmentData<'_> {
|
||||
pub fn to_tokens(
|
||||
&self,
|
||||
nests: &[Nest],
|
||||
|
||||
Reference in new issue
Block a user