windjammer_ui/components/generated/
collapsible.rs1#![allow(clippy::all)]
2#![allow(noop_method_call)]
3use super::traits::Renderable;
4
5pub struct CollapsibleSection {
6 title: String,
7 content: String,
8 open: bool,
9}
10
11impl CollapsibleSection {
12 #[inline]
13 pub fn new(title: String, content: String) -> CollapsibleSection {
14 CollapsibleSection {
15 title,
16 content,
17 open: false,
18 }
19 }
20 #[inline]
21 pub fn open(mut self, open: bool) -> CollapsibleSection {
22 self.open = open;
23 self
24 }
25}
26
27impl Renderable for CollapsibleSection {
28 #[inline]
29 fn render(self) -> String {
30 let icon = {
31 if self.open {
32 "▼"
33 } else {
34 "▶"
35 }
36 };
37 let content_style = {
38 if self.open {
39 "display: block;"
40 } else {
41 "display: none;"
42 }
43 };
44 format!(
45 "<div class='wj-collapsible'>
46 <div class='wj-collapsible-header'>
47 <span class='wj-collapsible-icon'>{}</span>
48 <span>{}</span>
49 </div>
50 <div class='wj-collapsible-content' style='{}'>
51 {}
52 </div>
53</div>",
54 icon, self.title, content_style, self.content
55 )
56 }
57}