yew_bs/components/
overflow.rs

1use yew::prelude::*;
2#[derive(Clone, Copy, PartialEq, Debug)]
3pub enum OverflowVariant {
4    Auto,
5    Hidden,
6    Visible,
7    Scroll,
8}
9impl OverflowVariant {
10    pub fn as_str(&self) -> &'static str {
11        match self {
12            OverflowVariant::Auto => "overflow-auto",
13            OverflowVariant::Hidden => "overflow-hidden",
14            OverflowVariant::Visible => "overflow-visible",
15            OverflowVariant::Scroll => "overflow-scroll",
16        }
17    }
18}
19/// Props for the Overflow component
20#[derive(Properties, PartialEq)]
21pub struct OverflowProps {
22    /// Overflow behavior
23    pub overflow: OverflowVariant,
24    /// The child elements to be wrapped
25    #[prop_or_default]
26    pub children: Children,
27    /// Additional CSS classes to apply
28    #[prop_or_default]
29    pub class: Option<AttrValue>,
30}
31/// A utility component for applying Bootstrap overflow utilities
32///
33/// The Overflow component provides easy access to Bootstrap's overflow
34#[function_component(Overflow)]
35pub fn overflow(props: &OverflowProps) -> Html {
36    let mut classes = Classes::new();
37    classes.push(props.overflow.as_str());
38    if let Some(custom_class) = &props.class {
39        classes.push(custom_class.to_string());
40    }
41    html! {
42        < div class = { classes } > { for props.children.iter() } </ div >
43    }
44}