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}