refactor!: reuse text style of tree item
BREAKING CHANGE: TreeItem style is gone
This commit is contained in:
+9
-6
@@ -276,8 +276,8 @@ where
|
||||
height,
|
||||
};
|
||||
|
||||
let item_style = self.style.patch(item.style);
|
||||
buf.set_style(area, item_style);
|
||||
let text = &item.text;
|
||||
let item_style = text.style;
|
||||
|
||||
let is_selected = state.selected == *identifier;
|
||||
let after_highlight_symbol_x = if has_selection {
|
||||
@@ -314,10 +314,13 @@ where
|
||||
x
|
||||
};
|
||||
|
||||
let max_element_width = area.width.saturating_sub(after_depth_x - x);
|
||||
for (j, line) in item.text.lines.iter().enumerate() {
|
||||
buf.set_line(after_depth_x, y + j as u16, line, max_element_width);
|
||||
}
|
||||
let text_area = Rect {
|
||||
x: after_depth_x,
|
||||
width: area.width.saturating_sub(after_depth_x - x),
|
||||
..area
|
||||
};
|
||||
text.render(text_area, buf);
|
||||
|
||||
if is_selected {
|
||||
buf.set_style(area, self.highlight_style);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
use std::collections::HashSet;
|
||||
|
||||
use ratatui::style::Style;
|
||||
use ratatui::text::Text;
|
||||
|
||||
/// One item inside a [`Tree`](crate::Tree).
|
||||
@@ -38,7 +37,6 @@ use ratatui::text::Text;
|
||||
pub struct TreeItem<'a, Identifier> {
|
||||
pub(super) identifier: Identifier,
|
||||
pub(super) text: Text<'a>,
|
||||
pub(super) style: Style,
|
||||
pub(super) children: Vec<Self>,
|
||||
}
|
||||
|
||||
@@ -55,7 +53,6 @@ where
|
||||
Self {
|
||||
identifier,
|
||||
text: text.into(),
|
||||
style: Style::new(),
|
||||
children: Vec::new(),
|
||||
}
|
||||
}
|
||||
@@ -83,7 +80,6 @@ where
|
||||
Ok(Self {
|
||||
identifier,
|
||||
text: text.into(),
|
||||
style: Style::new(),
|
||||
children,
|
||||
})
|
||||
}
|
||||
@@ -112,12 +108,6 @@ where
|
||||
self.text.height()
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
pub const fn style(mut self, style: Style) -> Self {
|
||||
self.style = style;
|
||||
self
|
||||
}
|
||||
|
||||
/// Add a child to the `TreeItem`.
|
||||
///
|
||||
/// # Errors
|
||||
|
||||
Reference in New Issue
Block a user