ui: More component previews, UI component cleanup (#25302)
- Don't require ui component docs (this isn't really working) - Add more component previews - Update component preview style & navigation Release Notes: - N/A
This commit is contained in:
parent
c9235ff916
commit
5397ca23a1
52 changed files with 813 additions and 856 deletions
|
@ -1,4 +1,4 @@
|
|||
use crate::prelude::*;
|
||||
use crate::{prelude::*, Avatar};
|
||||
use gpui::{AnyElement, StyleRefinement};
|
||||
use smallvec::SmallVec;
|
||||
|
||||
|
@ -7,7 +7,7 @@ use smallvec::SmallVec;
|
|||
///
|
||||
/// Facepiles are used to display a group of people or things,
|
||||
/// such as a list of participants in a collaboration session.
|
||||
#[derive(IntoElement)]
|
||||
#[derive(IntoElement, IntoComponent)]
|
||||
pub struct Facepile {
|
||||
base: Div,
|
||||
faces: SmallVec<[AnyElement; 2]>,
|
||||
|
@ -60,60 +60,57 @@ impl RenderOnce for Facepile {
|
|||
}
|
||||
}
|
||||
|
||||
// impl ComponentPreview for Facepile {
|
||||
// fn description() -> impl Into<Option<&'static str>> {
|
||||
// "A facepile is a collection of faces stacked horizontally–\
|
||||
// always with the leftmost face on top and descending in z-index.\
|
||||
// \n\nFacepiles are used to display a group of people or things,\
|
||||
// such as a list of participants in a collaboration session."
|
||||
// }
|
||||
// fn examples(_window: &mut Window, _: &mut App) -> Vec<ComponentExampleGroup<Self>> {
|
||||
// let few_faces: [&'static str; 3] = [
|
||||
// "https://avatars.githubusercontent.com/u/1714999?s=60&v=4",
|
||||
// "https://avatars.githubusercontent.com/u/67129314?s=60&v=4",
|
||||
// "https://avatars.githubusercontent.com/u/482957?s=60&v=4",
|
||||
// ];
|
||||
impl ComponentPreview for Facepile {
|
||||
fn preview(_window: &mut Window, _cx: &App) -> AnyElement {
|
||||
let faces: [&'static str; 6] = [
|
||||
"https://avatars.githubusercontent.com/u/326587?s=60&v=4",
|
||||
"https://avatars.githubusercontent.com/u/2280405?s=60&v=4",
|
||||
"https://avatars.githubusercontent.com/u/1789?s=60&v=4",
|
||||
"https://avatars.githubusercontent.com/u/67129314?s=60&v=4",
|
||||
"https://avatars.githubusercontent.com/u/482957?s=60&v=4",
|
||||
"https://avatars.githubusercontent.com/u/1714999?s=60&v=4",
|
||||
];
|
||||
|
||||
// let many_faces: [&'static str; 6] = [
|
||||
// "https://avatars.githubusercontent.com/u/326587?s=60&v=4",
|
||||
// "https://avatars.githubusercontent.com/u/2280405?s=60&v=4",
|
||||
// "https://avatars.githubusercontent.com/u/1789?s=60&v=4",
|
||||
// "https://avatars.githubusercontent.com/u/67129314?s=60&v=4",
|
||||
// "https://avatars.githubusercontent.com/u/482957?s=60&v=4",
|
||||
// "https://avatars.githubusercontent.com/u/1714999?s=60&v=4",
|
||||
// ];
|
||||
|
||||
// vec![example_group_with_title(
|
||||
// "Examples",
|
||||
// vec![
|
||||
// single_example(
|
||||
// "Few Faces",
|
||||
// Facepile::new(
|
||||
// few_faces
|
||||
// .iter()
|
||||
// .map(|&url| Avatar::new(url).into_any_element())
|
||||
// .collect(),
|
||||
// ),
|
||||
// ),
|
||||
// single_example(
|
||||
// "Many Faces",
|
||||
// Facepile::new(
|
||||
// many_faces
|
||||
// .iter()
|
||||
// .map(|&url| Avatar::new(url).into_any_element())
|
||||
// .collect(),
|
||||
// ),
|
||||
// ),
|
||||
// single_example(
|
||||
// "Custom Size",
|
||||
// Facepile::new(
|
||||
// few_faces
|
||||
// .iter()
|
||||
// .map(|&url| Avatar::new(url).size(px(24.)).into_any_element())
|
||||
// .collect(),
|
||||
// ),
|
||||
// ),
|
||||
// ],
|
||||
// )]
|
||||
// }
|
||||
// }
|
||||
v_flex()
|
||||
.gap_6()
|
||||
.children(vec![
|
||||
example_group_with_title(
|
||||
"Facepile Examples",
|
||||
vec![
|
||||
single_example(
|
||||
"Default",
|
||||
Facepile::new(
|
||||
faces
|
||||
.iter()
|
||||
.map(|&url| Avatar::new(url).into_any_element())
|
||||
.collect(),
|
||||
)
|
||||
.into_any_element(),
|
||||
),
|
||||
single_example(
|
||||
"Custom Size",
|
||||
Facepile::new(
|
||||
faces
|
||||
.iter()
|
||||
.map(|&url| Avatar::new(url).size(px(24.)).into_any_element())
|
||||
.collect(),
|
||||
)
|
||||
.into_any_element(),
|
||||
),
|
||||
],
|
||||
),
|
||||
example_group_with_title(
|
||||
"Special Cases",
|
||||
vec![
|
||||
single_example("Empty Facepile", Facepile::empty().into_any_element()),
|
||||
single_example(
|
||||
"Single Face",
|
||||
Facepile::new(vec![Avatar::new(faces[0]).into_any_element()].into())
|
||||
.into_any_element(),
|
||||
),
|
||||
],
|
||||
),
|
||||
])
|
||||
.into_any_element()
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue