list.rs

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