From 5de1cbaec27a3b429b75c87a213806aebcf420f4 Mon Sep 17 00:00:00 2001 From: Kenneth Date: Fri, 8 May 2026 02:29:38 +0800 Subject: [PATCH] refactor: impl Styled for Text --- src/component/text.rs | 21 +++++++++---------- src/screen/dashboard/issue_list.rs | 4 +++- src/screen/dashboard/sidebar.rs | 3 ++- src/screen/setup_wizard/github_step.rs | 14 ++++++------- .../setup_wizard/setup_complete_step.rs | 2 +- 5 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/component/text.rs b/src/component/text.rs index 74b3949..b073c58 100644 --- a/src/component/text.rs +++ b/src/component/text.rs @@ -1,5 +1,5 @@ use crate::app; -use gpui::{ParentElement, Styled, div}; +use gpui::{ParentElement, Refineable as _, Styled, div}; #[derive(gpui::IntoElement)] pub(crate) struct Text { @@ -10,7 +10,7 @@ pub(crate) struct Text { text_size: Option, text_color: Option, line_height: gpui::DefiniteLength, - styled: Option gpui::Div>>, + style: gpui::StyleRefinement, } pub(crate) trait TextContent: gpui::IntoElement {} @@ -28,7 +28,13 @@ pub(crate) fn text(content: impl TextContent) -> Text { text_size: None, text_color: None, line_height: gpui::relative(1.5), - styled: None, + style: gpui::StyleRefinement::default(), + } +} + +impl Styled for Text { + fn style(&mut self) -> &mut gpui::StyleRefinement { + &mut self.style } } @@ -152,11 +158,6 @@ impl Text { self.line_height(gpui::rems(2.5)) } - pub(crate) fn styled(mut self, styled: impl Fn(gpui::Div) -> gpui::Div + 'static) -> Self { - self.styled = Some(Box::new(styled)); - self - } - pub(crate) fn centered(mut self) -> Self { self.text_align = gpui::TextAlign::Center; self @@ -176,9 +177,7 @@ impl gpui::RenderOnce for Text { if let Some(text_size) = self.text_size { div = div.text_size(text_size); } - if let Some(styled) = self.styled { - div = styled(div); - } + div.style().refine(&self.style); div } } diff --git a/src/screen/dashboard/issue_list.rs b/src/screen/dashboard/issue_list.rs index 7301f43..9e1f1fe 100644 --- a/src/screen/dashboard/issue_list.rs +++ b/src/screen/dashboard/issue_list.rs @@ -146,7 +146,9 @@ impl gpui::RenderOnce for IssueListItem { .text_sm() .leading_tight() .medium() - .styled(|it| it.w_full().min_w_0().line_clamp(2)), + .w_full() + .min_w_0() + .line_clamp(2), ) .child(description_text), ) diff --git a/src/screen/dashboard/sidebar.rs b/src/screen/dashboard/sidebar.rs index 4aba853..ea5af53 100644 --- a/src/screen/dashboard/sidebar.rs +++ b/src/screen/dashboard/sidebar.rs @@ -119,7 +119,8 @@ impl gpui::Render for Sidebar { .text_xs() .medium() .opacity(0.5) - .styled(|it| it.pl_3().py_1()), + .pl_3() + .py_1(), ) .children(pull_request_sidebar_items), ) diff --git a/src/screen/setup_wizard/github_step.rs b/src/screen/setup_wizard/github_step.rs index 66bfcde..a907177 100644 --- a/src/screen/setup_wizard/github_step.rs +++ b/src/screen/setup_wizard/github_step.rs @@ -277,14 +277,12 @@ impl GithubStepView { text(String::from(c)) .bold() .text_2xl() - .styled(move |it| { - it.p_3() - .font_family("CommitMono") - .border_1() - .border_color(border_color) - .rounded_lg() - .bg(bg_color) - }) + .p_3() + .font_family("CommitMono") + .border_1() + .border_color(border_color) + .rounded_lg() + .bg(bg_color) .when(is_loading_code, |it| it.opacity(0.5)) }) .collect::>(); diff --git a/src/screen/setup_wizard/setup_complete_step.rs b/src/screen/setup_wizard/setup_complete_step.rs index 0d60c54..205032c 100644 --- a/src/screen/setup_wizard/setup_complete_step.rs +++ b/src/screen/setup_wizard/setup_complete_step.rs @@ -16,7 +16,7 @@ pub(crate) fn setup_complete_step() -> impl gpui::IntoElement { .flex_col() .items_center() .justify_center() - .child(text("ദ്ദി/ᐠ - ⩊ -マ.ᐟ").text_2xl().styled(|it| it.mb_4())) + .child(text("ദ്ദി/ᐠ - ⩊ -マ.ᐟ").text_2xl().mb_4()) .child(text("Setup complete!").bold().text_2xl()) .child(text("You can now start using Novem.").opacity(0.8)), )