freya_devtools_app/hooks/
use_node_info.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use dioxus_radio::prelude::use_radio;
use freya_devtools::NodeInfo;
use freya_native_core::prelude::NodeId;

use crate::state::DevtoolsChannel;

pub fn use_node_info(node_id: NodeId, window_id: u64) -> Option<NodeInfo> {
    let radio = use_radio(DevtoolsChannel::UpdatedDOM);
    let state = radio.read();

    state
        .nodes
        .get(&window_id)?
        .iter()
        .find(|node| node.node_id == node_id)
        .cloned()
}