WIP: Work toward eliminating Component trait

This refactor enhances the overall design by promoting reusable and composable UI component structures within the Zed project codebase.
This commit is contained in:
Nathan Sobo
2023-11-18 00:03:23 -07:00
parent 2515bbf990
commit 23ffce9fbe
46 changed files with 192 additions and 90 deletions
+10 -7
View File
@@ -1,4 +1,4 @@
use gpui::{div, Component, Div, ParentComponent, Styled, ViewContext};
use gpui::{div, Component, Div, Element, ParentComponent, SharedString, Styled, ViewContext};
use crate::ActiveTheme;
@@ -16,23 +16,26 @@ impl Story {
.bg(cx.theme().colors().background)
}
pub fn title<V: 'static>(cx: &mut ViewContext<V>, title: &str) -> impl Component<V> {
pub fn title<V: 'static>(cx: &mut ViewContext<V>, title: SharedString) -> impl Element<V> {
div()
.text_xl()
.text_color(cx.theme().colors().text)
.child(title.to_owned())
.child(title)
}
pub fn title_for<V: 'static, T>(cx: &mut ViewContext<V>) -> impl Component<V> {
Self::title(cx, std::any::type_name::<T>())
pub fn title_for<V: 'static, T>(cx: &mut ViewContext<V>) -> impl Element<V> {
Self::title(cx, std::any::type_name::<T>().into())
}
pub fn label<V: 'static>(cx: &mut ViewContext<V>, label: &str) -> impl Component<V> {
pub fn label<V: 'static>(
cx: &mut ViewContext<V>,
label: impl Into<SharedString>,
) -> impl Element<V> {
div()
.mt_4()
.mb_2()
.text_xs()
.text_color(cx.theme().colors().text)
.child(label.to_owned())
.child(label.into())
}
}