update
This commit is contained in:
parent
f7668c5c54
commit
b0c6daf56e
1 changed files with 7 additions and 6 deletions
|
@ -10,14 +10,13 @@ pub fn Hover<T: UIWidget + 'static, I: UIWidget + 'static>(inherit: I, inner: T)
|
|||
pub struct HoverWrapper(Box<dyn UIWidget>, Box<dyn UIWidget>);
|
||||
|
||||
impl HoverWrapper {
|
||||
fn hovered_class(&self) -> String {
|
||||
fn hovered_class(&self) -> Vec<String> {
|
||||
self.1
|
||||
.extended_class()
|
||||
.into_iter()
|
||||
.filter(|x| !x.is_empty())
|
||||
.map(|x| format!("hover:{x}"))
|
||||
.collect::<Vec<_>>()
|
||||
.join(" ")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -33,21 +32,23 @@ impl UIWidget for HoverWrapper {
|
|||
}
|
||||
|
||||
fn base_class(&self) -> Vec<String> {
|
||||
vec![]
|
||||
self.hovered_class()
|
||||
}
|
||||
|
||||
fn extended_class(&self) -> Vec<String> {
|
||||
self.base_class()
|
||||
let mut ret = self.base_class();
|
||||
ret.extend_from_slice(&self.0.extended_class());
|
||||
ret
|
||||
}
|
||||
|
||||
fn render_with_class(&self, class: &str) -> Markup {
|
||||
if self.0.as_ref().can_inherit() {
|
||||
self.0
|
||||
.as_ref()
|
||||
.render_with_class(&format!("{} {class}", self.hovered_class()))
|
||||
.render_with_class(&format!("{} {class}", self.hovered_class().join(" ")))
|
||||
} else {
|
||||
html! {
|
||||
div class=(format!("{} {class}", self.hovered_class())) {
|
||||
div class=(format!("{} {class}", self.hovered_class().join(" "))) {
|
||||
(self.0.as_ref())
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue