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