1use gpui::AnyElement;
2use smallvec::SmallVec;
3
4use crate::prelude::*;
5
6#[derive(IntoElement)]
7pub struct SettingsContainer {
8 children: SmallVec<[AnyElement; 2]>,
9}
10
11impl SettingsContainer {
12 pub fn new() -> Self {
13 Self {
14 children: SmallVec::new(),
15 }
16 }
17}
18
19impl ParentElement for SettingsContainer {
20 fn extend(&mut self, elements: impl IntoIterator<Item = AnyElement>) {
21 self.children.extend(elements)
22 }
23}
24
25impl RenderOnce for SettingsContainer {
26 fn render(self, cx: &mut WindowContext) -> impl IntoElement {
27 v_flex()
28 .elevation_2(cx)
29 .px_2()
30 .gap_1()
31 .children(self.children)
32 }
33}