1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
use dioxus::prelude::*;
use dioxus_native_core::NodeId;
use freya_components::*;
use freya_elements::elements as dioxus_elements;
use freya_hooks::{theme_with, ScrollViewThemeWith};
use crate::{hooks::use_selected_node, NodeInspectorBar};
#[allow(non_snake_case)]
#[component]
pub fn NodeInspectorLayout(node_id: NodeId) -> Element {
let node = use_selected_node(&node_id);
if let Some(node) = node {
let inner_area = format!(
"{}x{}",
node.layout_node.inner_area.width(),
node.layout_node.inner_area.height()
);
let area = format!(
"{}x{}",
node.layout_node.area.width(),
node.layout_node.area.height()
);
let paddings = node.state.size.padding;
rsx!(
rect {
overflow: "clip",
width: "100%",
height: "50%",
NodeInspectorBar {
node_id
}
ScrollView {
show_scrollbar: true,
theme: theme_with!(ScrollViewTheme {
height : "calc(100% - 35)".into(),
}),
rect {
width: "100%",
height: "200",
padding: "20",
label {
height: "25",
"Area: {area}"
}
rect {
width: "100%",
height: "calc(100% - 25)",
main_align: "center",
cross_align: "center",
background: "rgb(40, 40, 40)",
rect {
width: "100%",
height: "100%",
background: "rgb(71, 180, 240)",
corner_radius: "5",
rect {
main_align: "center",
cross_align: "center",
width: "100%",
height: "25",
label {
width: "100%",
text_align: "center",
"{paddings.top()}"
}
}
rect {
width: "100%",
height: "calc(100% - 50)",
direction: "horizontal",
rect {
main_align: "center",
cross_align: "center",
width: "25",
height: "100%",
label {
width: "100%",
text_align: "center",
"{paddings.left()}"
}
}
rect {
width: "calc(100% - 50)",
height: "100%",
main_align: "center",
cross_align: "center",
background: "rgb(40, 40, 40)",
corner_radius: "5",
label {
"{inner_area}"
}
}
rect {
main_align: "center",
cross_align: "center",
width: "25",
height: "100%",
label {
width: "100%",
text_align: "center",
"{paddings.right()}"
}
}
}
rect {
main_align: "center",
cross_align: "center",
width: "100%",
height: "25",
label {
width: "100%",
text_align: "center",
"{paddings.bottom()}"
}
}
}
}
}
}
}
)
} else {
None
}
}