forked from reya/gpui-native-kit
clean up
This commit is contained in:
+10
-10
@@ -7,7 +7,7 @@ use gpui::{
|
||||
Styled as _, Window, div,
|
||||
};
|
||||
use gpui_native_icons::{IconRole, icon};
|
||||
use gpui_native_theme::{ActiveTheme as _, Theme};
|
||||
use gpui_native_theme::ActiveTheme as _;
|
||||
use gpui_native_utils::{nav_key, paint_selectable_row, selectable_label_color};
|
||||
|
||||
/// The change reporter, fired with the next selection by pointer and keys.
|
||||
@@ -158,22 +158,20 @@ impl RenderOnce for Tree {
|
||||
.map(|(index, _)| index)
|
||||
.collect();
|
||||
|
||||
// Keyboard focus rides the container across frames.
|
||||
let focus = gpui_native_utils::focus_handle(&self.id, window, cx);
|
||||
let theme = cx.theme();
|
||||
|
||||
let label = self
|
||||
.a11y_label
|
||||
.clone()
|
||||
.unwrap_or_else(|| SharedString::from(self.id.to_string()));
|
||||
|
||||
let theme = cx.theme();
|
||||
|
||||
let rows: Vec<AnyElement> = items
|
||||
.iter()
|
||||
.enumerate()
|
||||
.map(|(index, _item)| {
|
||||
render_row(
|
||||
theme,
|
||||
cx,
|
||||
&items,
|
||||
index,
|
||||
self.selected == Some(index),
|
||||
@@ -231,7 +229,7 @@ impl RenderOnce for Tree {
|
||||
}
|
||||
|
||||
fn render_row(
|
||||
theme: &Theme,
|
||||
cx: &App,
|
||||
items: &[TreeItem],
|
||||
index: usize,
|
||||
selected: bool,
|
||||
@@ -239,9 +237,10 @@ fn render_row(
|
||||
on_disclosure: &Option<DisclosureHandler>,
|
||||
focus: &FocusHandle,
|
||||
) -> AnyElement {
|
||||
let theme = cx.theme();
|
||||
let item = &items[index];
|
||||
let count = items.len();
|
||||
let label_color = selectable_label_color(theme, selected, item.disabled);
|
||||
let label_color = selectable_label_color(cx, selected, item.disabled);
|
||||
let disabled = item.disabled;
|
||||
|
||||
// One indent step per depth level, on the theme's horizontal padding.
|
||||
@@ -261,7 +260,7 @@ fn render_row(
|
||||
.aria_level(item.depth + 1)
|
||||
.aria_size_of_set(count)
|
||||
.when(item.expandable, |row| row.aria_expanded(item.expanded))
|
||||
.map(|row| paint_selectable_row(theme, row, selected, disabled))
|
||||
.map(|row| paint_selectable_row(cx, row, selected, disabled))
|
||||
.when(!disabled, |row| {
|
||||
row.cursor_pointer().on_click({
|
||||
let on_change = on_change.clone();
|
||||
@@ -275,11 +274,11 @@ fn render_row(
|
||||
})
|
||||
})
|
||||
.child(render_disclosure(
|
||||
cx,
|
||||
item,
|
||||
index,
|
||||
disabled,
|
||||
selected,
|
||||
theme,
|
||||
on_disclosure,
|
||||
))
|
||||
.when_some(item.icon, |row, role| {
|
||||
@@ -300,13 +299,14 @@ fn render_row(
|
||||
|
||||
/// The disclosure slot.
|
||||
fn render_disclosure(
|
||||
cx: &App,
|
||||
item: &TreeItem,
|
||||
index: usize,
|
||||
disabled: bool,
|
||||
selected: bool,
|
||||
theme: &Theme,
|
||||
on_disclosure: &Option<DisclosureHandler>,
|
||||
) -> AnyElement {
|
||||
let theme = cx.theme();
|
||||
let glyph_color = if disabled {
|
||||
theme.colors.muted_foreground
|
||||
} else if selected {
|
||||
|
||||
Reference in New Issue
Block a user