use std::marker::PhantomData; use ui::prelude::*; use ui::{Label, Panel}; use crate::story::Story; #[derive(Element)] pub struct PanelStory { state_type: PhantomData, } impl PanelStory { pub fn new() -> Self { Self { state_type: PhantomData, } } fn render(&mut self, cx: &mut ViewContext) -> impl Element { Story::container(cx) .child(Story::title_for::<_, Panel>(cx)) .child(Story::label(cx, "Default")) .child(Panel::new( ScrollState::default(), |_, _| { vec![div() .overflow_y_scroll(ScrollState::default()) .children((0..100).map(|ix| Label::new(format!("Item {}", ix + 1)))) .into_any()] }, Box::new(()), )) } }