raui_core/widget/component/containers/
hidden_box.rs1use crate::{
2 PropsData, unpack_named_slots,
3 widget::{context::WidgetContext, node::WidgetNode, unit::area::AreaBoxNode},
4};
5use serde::{Deserialize, Serialize};
6
7#[derive(PropsData, Debug, Default, Copy, Clone, Serialize, Deserialize)]
8#[props_data(crate::props::PropsData)]
9#[prefab(crate::Prefab)]
10pub struct HiddenBoxProps(#[serde(default)] pub bool);
11
12pub fn hidden_box(context: WidgetContext) -> WidgetNode {
13 let WidgetContext {
14 id,
15 props,
16 named_slots,
17 ..
18 } = context;
19 unpack_named_slots!(named_slots => content);
20
21 let HiddenBoxProps(hidden) = props.read_cloned_or_default();
22
23 if hidden {
24 Default::default()
25 } else {
26 AreaBoxNode {
27 id: id.to_owned(),
28 slot: Box::new(content),
29 }
30 .into()
31 }
32}