deny missing docs in router

This commit is contained in:
Adrian Wannenmacher 2022-12-13 12:42:18 +01:00
parent 8d52a6d208
commit af6362ce3e
No known key found for this signature in database
GPG key ID: 19D986ECB1E492D5
6 changed files with 71 additions and 22 deletions

View file

@ -111,7 +111,7 @@ where
///
/// # Returns
/// 1. The [`RouterService`].
/// 2. A [`Sender`] to send [`RouterMessage`]s to the [`RouterService`].
/// 2. An [`UnboundedSender`] to send [`RouterMessage`]s to the [`RouterService`].
/// 3. Access to the [`RouterState`]. **DO NOT WRITE TO THIS!!!** Seriously, **READ ONLY!!!**
#[allow(clippy::type_complexity)]
pub fn new(

View file

@ -51,15 +51,63 @@
Dioxus Router is a first-party Router for all your Dioxus Apps. It provides a React-Router style interface that works anywhere: across the browser, SSR, and natively.
```rust, ignore
fn app() {
cx.render(rsx! {
Router {
Route { to: "/", Component {} },
Route { to: "/blog", Blog {} },
Route { to: "/blog/:id", BlogPost {} },
```rust ,no_run
use dioxus::prelude::*;
use dioxus_router::prelude::*;
fn App(cx: Scope) -> Element {
use_router(
&cx,
&|| Default::default(),
&|| Segment::content(comp(Index)).fixed(
"blog",
Route::content(comp(Blog)).nested(
Segment::content(comp(BlogList))
.catch_all((comp(BlogPost), BlogPost))
)
)
);
render! {
Outlet { }
}
}
fn Index(cx: Scope) -> Element {
render! {
h1 { "Index" }
Link {
target: "/blog",
"Go to the blog"
}
})
}
}
fn Blog(cx: Scope) -> Element {
render! {
h1 { "Blog" }
Outlet { }
}
}
fn BlogList(cx: Scope) -> Element {
render! {
h2 { "List of blog posts" }
Link {
target: "/blog/1",
"Blog post 1"
}
Link {
target: "/blog/1",
"Blog post 2"
}
}
}
fn BlogPost(cx: Scope) -> Element {
render! {
h2 { "Blog Post" }
}
}
```

View file

@ -10,6 +10,8 @@ use crate::{RouterError, utils::use_router_internal::use_router_internal};
/// component calling the [`use_router`] hook.
/// - Otherwise [`Ok`].
///
/// [`use_router`]: crate::hooks::use_router
///
/// # Panic
/// - When the calling component is not nested within another component calling the [`use_router`]
/// hook, but only in debug builds.

View file

@ -2,7 +2,7 @@ use async_rwlock::RwLockReadGuard;
use dioxus::{core::Component, prelude::ScopeState};
use dioxus_router_core::RouterState;
use crate::{RouterError, utils::use_router_internal::use_router_internal};
use crate::{utils::use_router_internal::use_router_internal, RouterError};
/// A hook that provides access to information about the current routing location.
///
@ -55,7 +55,7 @@ use crate::{RouterError, utils::use_router_internal::use_router_internal};
/// # assert_eq!(dioxus_ssr::render(&vdom), "<h1>App</h1><h2>Current Path</h2><p>/some/path</p>")
/// ```
///
/// [`use_router`]: super::use_router
/// [`use_router`]: crate::hooks::use_router
#[must_use]
pub fn use_route<'a>(
cx: &'a ScopeState,

View file

@ -27,15 +27,16 @@ use crate::{
///
/// # Return values
/// This hook returns the current router state and a navigator. For more information about the
/// state, see the [`use_route`](super::use_route) hook. For more information about the
/// [`Navigator`], see its own documentation and the [`use_navigate`](super::use_navigate) hook.
/// state, see the [`use_route`](crate::hooks::use_route) hook. For more information about the
/// [`Navigator`], see its own documentation and the [`use_navigate`](crate::hooks::use_navigate)
/// hook.
///
/// # Panic
/// - When used within a component, that is nested inside another component calling [`use_router`],
/// but only in debug builds.
///
/// # Example
/// ```rust,no_run
/// ```rust
/// # use dioxus::prelude::*;
/// # use dioxus_router::prelude::*;
/// fn App(cx: Scope) -> Element {
@ -129,7 +130,7 @@ pub fn use_router<'a>(
/// Global configuration options for the router.
///
/// This implements [`Default`], so you can use it like this:
/// ```rust
/// ```rust,no_run
/// # use dioxus_router::prelude::RouterConfiguration;
/// let cfg = RouterConfiguration {
/// synchronous: false,

View file

@ -1,5 +1,8 @@
#![doc = include_str!("../README.md")]
// cannot use forbid, because props derive macro generates #[allow(missing_docs)]
#![deny(missing_docs)]
/// Components interacting with the router.
#[deny(missing_docs)]
pub mod components {
pub(crate) mod default_errors;
@ -17,16 +20,12 @@ mod contexts {
pub(crate) mod router;
}
#[forbid(missing_docs)]
mod error;
pub use error::RouterError;
pub mod history {
pub use dioxus_router_core::history::*;
}
pub use dioxus_router_core::history;
/// Hooks for interacting with the router in components.
#[forbid(missing_docs)]
pub mod hooks {
mod use_navigate;
pub use use_navigate::*;
@ -39,7 +38,6 @@ pub mod hooks {
}
/// A collection of useful items most applications might need.
#[forbid(missing_docs)]
pub mod prelude {
pub use dioxus_router_core::prelude::*;