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:
Evan AlmloffandJonathan Kelley authored and GitHub committed 2024-10-31 12:44:04 -07:00
1 parent e5a1a62644
commit 281087469a
48 files changed
+875 -1419

No files matched your search

+17 -1
View File
@@ -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(),
}
}
}
}
}
+1 -1
View File
@@ -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],