2023-12-14 00:12:20 +00:00
|
|
|
use gpui::{InteractiveElement, SharedString, Styled};
|
|
|
|
|
2023-12-14 01:42:27 +00:00
|
|
|
pub trait VisibleOnHover {
|
2023-12-14 00:12:20 +00:00
|
|
|
/// Sets the element to only be visible when the specified group is hovered.
|
|
|
|
///
|
|
|
|
/// Pass `""` as the `group_name` to use the global group.
|
2023-12-14 01:42:27 +00:00
|
|
|
fn visible_on_hover(self, group_name: impl Into<SharedString>) -> Self;
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<E: InteractiveElement + Styled> VisibleOnHover for E {
|
2023-12-14 00:12:20 +00:00
|
|
|
fn visible_on_hover(self, group_name: impl Into<SharedString>) -> Self {
|
|
|
|
self.invisible()
|
|
|
|
.group_hover(group_name, |style| style.visible())
|
|
|
|
}
|
|
|
|
}
|