windjammer-ui 0.3.6

Cross-platform UI framework for Windjammer (Web, Desktop, Mobile)
Documentation
#![allow(clippy::all)]
#![allow(noop_method_call)]
use super::traits::Renderable;

#[derive(Debug, Clone, PartialEq, Eq, Hash, Default)]
pub struct CollapsibleSection {
    pub title: String,
    pub content: String,
    pub open: bool,
}

impl CollapsibleSection {
    #[inline]
    pub fn new(title: String, content: String) -> CollapsibleSection {
        CollapsibleSection {
            title,
            content,
            open: false,
        }
    }
    #[inline]
    pub fn open(mut self, open: bool) -> CollapsibleSection {
        self.open = open;
        self
    }
}

impl Renderable for CollapsibleSection {
    #[inline]
    fn render(self) -> String {
        let icon = {
            if self.open {
                "".to_string()
            } else {
                "".to_string()
            }
        };
        let content_style = {
            if self.open {
                "display: block;".to_string()
            } else {
                "display: none;".to_string()
            }
        };
        format!(
            "<div class='wj-collapsible'>
  <div class='wj-collapsible-header'>
    <span class='wj-collapsible-icon'>{}</span>
    <span>{}</span>
  </div>
  <div class='wj-collapsible-content' style='{}'>
    {}
  </div>
</div>",
            icon, self.title, content_style, self.content
        )
    }
}