1use gpui::Render;
2use story::Story;
3
4use crate::{List, ListItem};
5use crate::{ListHeader, ListSeparator, ListSubHeader, prelude::*};
6
7pub struct ListStory;
8
9impl Render for ListStory {
10 fn render(&mut self, _window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement {
11 Story::container(cx)
12 .child(Story::title_for::<List>(cx))
13 .child(Story::label("Default", cx))
14 .child(
15 List::new()
16 .child(ListItem::new("apple").child("Apple"))
17 .child(ListItem::new("banana").child("Banana"))
18 .child(ListItem::new("cherry").child("Cherry")),
19 )
20 .child(Story::label("With sections", cx))
21 .child(
22 List::new()
23 .header(ListHeader::new("Produce"))
24 .child(ListSubHeader::new("Fruits"))
25 .child(ListItem::new("apple").child("Apple"))
26 .child(ListItem::new("banana").child("Banana"))
27 .child(ListItem::new("cherry").child("Cherry"))
28 .child(ListSeparator)
29 .child(ListSubHeader::new("Root Vegetables"))
30 .child(ListItem::new("carrot").child("Carrot"))
31 .child(ListItem::new("potato").child("Potato"))
32 .child(ListSubHeader::new("Leafy Vegetables"))
33 .child(ListItem::new("kale").child("Kale")),
34 )
35 }
36}