document all features

This commit is contained in:
Evan Almloff committed 2024-02-09 12:15:59 -06:00
1 parent 374ff24141
commit b4d17abfc1
21 files changed
+110 -374

No files matched your search

-78
View File
@@ -11,18 +11,6 @@ pub struct RouterConfigFactory<R: Routable> {
config: Rc<RefCell<Option<Box<dyn FnOnce() -> RouterConfig<R>>>>>,
}
#[cfg(feature = "serde")]
impl<R: Routable> Default for RouterConfigFactory<R>
where
<R as FromStr>::Err: std::fmt::Display,
R: serde::Serialize + serde::de::DeserializeOwned,
{
fn default() -> Self {
Self::from(RouterConfig::default)
}
}
#[cfg(not(feature = "serde"))]
impl<R: Routable> Default for RouterConfigFactory<R>
where
<R as FromStr>::Err: std::fmt::Display,
@@ -40,19 +28,6 @@ impl<R: Routable, F: FnOnce() -> RouterConfig<R> + 'static> From<F> for RouterCo
}
}
#[cfg(feature = "serde")]
/// The props for [`Router`].
#[derive(Props)]
pub struct RouterProps<R: Routable>
where
<R as FromStr>::Err: std::fmt::Display,
R: serde::Serialize + serde::de::DeserializeOwned,
{
#[props(default, into)]
config: RouterConfigFactory<R>,
}
#[cfg(not(feature = "serde"))]
/// The props for [`Router`].
#[derive(Props)]
pub struct RouterProps<R: Routable>
@@ -74,7 +49,6 @@ where
}
}
#[cfg(not(feature = "serde"))]
impl<R: Routable> Default for RouterProps<R>
where
<R as FromStr>::Err: std::fmt::Display,
@@ -86,20 +60,6 @@ where
}
}
#[cfg(feature = "serde")]
impl<R: Routable> Default for RouterProps<R>
where
<R as FromStr>::Err: std::fmt::Display,
R: serde::Serialize + serde::de::DeserializeOwned,
{
fn default() -> Self {
Self {
config: RouterConfigFactory::default(),
}
}
}
#[cfg(not(feature = "serde"))]
impl<R: Routable> PartialEq for RouterProps<R>
where
<R as FromStr>::Err: std::fmt::Display,
@@ -110,19 +70,6 @@ where
}
}
#[cfg(feature = "serde")]
impl<R: Routable> PartialEq for RouterProps<R>
where
<R as FromStr>::Err: std::fmt::Display,
R: serde::Serialize + serde::de::DeserializeOwned,
{
fn eq(&self, _: &Self) -> bool {
// prevent the router from re-rendering when the initial url or config changes
true
}
}
#[cfg(not(feature = "serde"))]
/// A component that renders the current route.
pub fn Router<R: Routable + Clone>(props: RouterProps<R>) -> Element
where
@@ -148,28 +95,3 @@ where
rsx! { Outlet::<R> {} }
}
#[cfg(feature = "serde")]
/// A component that renders the current route.
pub fn Router<R: Routable + Clone>(cx: ScopeState<RouterProps<R>>) -> Element
where
<R as FromStr>::Err: std::fmt::Display,
R: serde::Serialize + serde::de::DeserializeOwned,
{
use_context_provider(|| {
RouterContext::new(
(cx.props
.config
.config
.take()
.expect("use_context_provider ran twice"))(),
cx.schedule_update_any(),
)
});
use_context_provider(|| OutletContext::<R> {
current_level: 0,
_marker: std::marker::PhantomData,
});
rsx! { Outlet::<R> {} }
}