list.rs

 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}