freya_hooks/use_activable_route.rs
1use dioxus_hooks::try_use_context;
2use dioxus_signals::{
3 Readable,
4 Signal,
5};
6
7#[derive(Default, Clone)]
8pub struct ActivableRouteContext(pub Signal<bool>);
9
10impl ActivableRouteContext {
11 pub fn is_active(&self) -> bool {
12 *self.0.read()
13 }
14}
15
16/// Consume an activable Route, use in combination with `ActivableRoute`.
17pub fn use_activable_route() -> bool {
18 let ctx = try_use_context::<ActivableRouteContext>();
19
20 if let Some(ctx) = ctx {
21 ctx.is_active()
22 } else {
23 false
24 }
25}