use leptos::{html, prelude::*};
use orbital_style::inject_style;
use super::overlay_layer_root_styles::overlay_layer_root_styles;
#[component]
pub fn OverlayLayerRoot(
#[prop(optional)]
node_ref: Option<NodeRef<html::Div>>,
#[prop(optional, into)] class: MaybeProp<String>,
children: Children,
) -> impl IntoView {
inject_style("orbital-overlay-layer-root", overlay_layer_root_styles());
let layer_ref = node_ref.unwrap_or_default();
let root_class = Signal::derive(move || {
let mut classes = vec!["orbital-overlay-layer-root".to_string()];
if let Some(extra) = class.get() {
if !extra.is_empty() {
classes.push(extra);
}
}
classes.join(" ")
});
view! {
<div class=root_class node_ref=layer_ref>
{children()}
</div>
}
}