dioxus_router/
lib.rs

1#![doc = include_str!("../README.md")]
2#![doc(html_logo_url = "https://avatars.githubusercontent.com/u/79236386")]
3#![doc(html_favicon_url = "https://avatars.githubusercontent.com/u/79236386")]
4// cannot use forbid, because props derive macro generates #[allow(missing_docs)]
5#![deny(missing_docs)]
6#![allow(non_snake_case)]
7
8pub mod navigation;
9pub mod routable;
10
11/// Components interacting with the router.
12pub mod components {
13    mod default_errors;
14    pub use default_errors::*;
15
16    mod history_buttons;
17    pub use history_buttons::*;
18
19    mod link;
20    pub use link::*;
21
22    mod outlet;
23    pub use outlet::*;
24
25    mod router;
26    pub use router::*;
27
28    mod history_provider;
29    pub use history_provider::*;
30
31    #[doc(hidden)]
32    pub mod child_router;
33}
34
35mod contexts {
36    pub(crate) mod navigator;
37    pub(crate) mod outlet;
38    pub(crate) mod router;
39    pub use navigator::*;
40    pub(crate) use router::*;
41    pub use router::{root_router, RouterContext};
42}
43
44mod router_cfg;
45
46/// Hooks for interacting with the router in components.
47pub mod hooks {
48    mod use_router;
49    pub use use_router::*;
50
51    mod use_route;
52    pub use use_route::*;
53
54    mod use_navigator;
55    pub use use_navigator::*;
56}
57
58pub use hooks::router;
59
60/// A collection of useful items most applications might need.
61pub mod prelude {
62    pub use crate::components::{
63        GoBackButton, GoForwardButton, HistoryButtonProps, Link, LinkProps, Outlet, Router,
64        RouterProps,
65    };
66    pub use crate::contexts::*;
67    pub use crate::hooks::*;
68    pub use crate::navigation::*;
69    pub use crate::routable::*;
70    pub use crate::router_cfg::RouterConfig;
71    pub use dioxus_router_macro::Routable;
72
73    #[doc(hidden)]
74    /// A component with props used in the macro
75    pub trait HasProps {
76        /// The props type of the component.
77        type Props;
78    }
79
80    impl<P> HasProps for dioxus_lib::prelude::Component<P> {
81        type Props = P;
82    }
83}
84
85mod utils {
86    pub(crate) mod use_router_internal;
87}
88
89#[doc(hidden)]
90pub mod exports {
91    pub use urlencoding;
92}