1use gpui::{Div, Render};
2use story::Story;
3
4use crate::{prelude::*, Tooltip};
5use crate::{Icon, IconButton};
6
7pub struct IconButtonStory;
8
9impl Render for IconButtonStory {
10 type Element = Div;
11
12 fn render(&mut self, _cx: &mut ViewContext<Self>) -> Self::Element {
13 Story::container()
14 .child(Story::title_for::<IconButton>())
15 .child(Story::label("Default"))
16 .child(div().w_8().child(IconButton::new("icon_a", Icon::Hash)))
17 .child(Story::label("Selected"))
18 .child(
19 div()
20 .w_8()
21 .child(IconButton::new("icon_a", Icon::Hash).selected(true)),
22 )
23 .child(Story::label("Selected with `selected_icon`"))
24 .child(
25 div().w_8().child(
26 IconButton::new("icon_a", Icon::AudioOn)
27 .selected(true)
28 .selected_icon(Icon::AudioOff),
29 ),
30 )
31 .child(Story::label("Disabled"))
32 .child(
33 div()
34 .w_8()
35 .child(IconButton::new("icon_a", Icon::Hash).disabled(true)),
36 )
37 .child(Story::label("With `on_click`"))
38 .child(
39 div()
40 .w_8()
41 .child(
42 IconButton::new("with_on_click", Icon::Ai).on_click(|_event, _cx| {
43 println!("Clicked!");
44 }),
45 ),
46 )
47 .child(Story::label("With `tooltip`"))
48 .child(
49 div().w_8().child(
50 IconButton::new("with_tooltip", Icon::MessageBubbles)
51 .tooltip(|cx| Tooltip::text("Open messages", cx)),
52 ),
53 )
54 .child(Story::label("Selected with `tooltip`"))
55 .child(
56 div().w_8().child(
57 IconButton::new("selected_with_tooltip", Icon::InlayHint)
58 .selected(true)
59 .tooltip(|cx| Tooltip::text("Toggle inlay hints", cx)),
60 ),
61 )
62 }
63}