Add tooltip to follow collaborators

This commit is contained in:
Antonio Scandurra 2022-06-15 17:01:48 +02:00
parent 8a146e49ca
commit 516bd13474
6 changed files with 86 additions and 72 deletions

View file

@ -266,47 +266,44 @@ impl View for SidebarButtons {
side,
item_index: ix,
};
MouseEventHandler::new::<Self, _, _>(ix, cx, {
let action = action.clone();
let tooltip_style = tooltip_style.clone();
move |state, cx| {
let is_active = Some(ix) == active_ix;
let style = item_style.style_for(state, is_active);
Stack::new()
.with_child(
Svg::new(icon_path).with_color(style.icon_color).boxed(),
MouseEventHandler::new::<Self, _, _>(ix, cx, move |state, cx| {
let is_active = Some(ix) == active_ix;
let style = item_style.style_for(state, is_active);
Stack::new()
.with_child(Svg::new(icon_path).with_color(style.icon_color).boxed())
.with_children(if !is_active && item_view.should_show_badge(cx) {
Some(
Empty::new()
.collapsed()
.contained()
.with_style(badge_style)
.aligned()
.bottom()
.right()
.boxed(),
)
.with_children(if !is_active && item_view.should_show_badge(cx) {
Some(
Empty::new()
.collapsed()
.contained()
.with_style(badge_style)
.aligned()
.bottom()
.right()
.boxed(),
)
} else {
None
})
.constrained()
.with_width(style.icon_size)
.with_height(style.icon_size)
.contained()
.with_style(style.container)
.with_tooltip(
ix,
tooltip,
Some(Box::new(action.clone())),
tooltip_style.clone(),
cx,
)
.boxed()
}
} else {
None
})
.constrained()
.with_width(style.icon_size)
.with_height(style.icon_size)
.contained()
.with_style(style.container)
.boxed()
})
.with_cursor_style(CursorStyle::PointingHand)
.on_click(move |_, _, cx| cx.dispatch_action(action.clone()))
.on_click({
let action = action.clone();
move |_, _, cx| cx.dispatch_action(action.clone())
})
.with_tooltip::<Self, _>(
ix,
tooltip,
Some(Box::new(action)),
tooltip_style.clone(),
cx,
)
.boxed()
},
))