✨ Añade soporte a contenido HTML en ítems de menú
This commit is contained in:
parent
498df42b5b
commit
da229e494d
1 changed files with 20 additions and 0 deletions
|
|
@ -25,6 +25,9 @@ pub enum ItemKind {
|
||||||
blank: bool,
|
blank: bool,
|
||||||
disabled: bool,
|
disabled: bool,
|
||||||
},
|
},
|
||||||
|
/// Contenido HTML arbitrario. El componente [`Html`] se renderiza tal cual como elemento del
|
||||||
|
/// menú, sin añadir ningún comportamiento de navegación adicional.
|
||||||
|
Html(Typed<Html>),
|
||||||
/// Elemento que despliega un menú [`Dropdown`].
|
/// Elemento que despliega un menú [`Dropdown`].
|
||||||
Dropdown(Typed<Dropdown>),
|
Dropdown(Typed<Dropdown>),
|
||||||
}
|
}
|
||||||
|
|
@ -148,6 +151,12 @@ impl Component for Item {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ItemKind::Html(html) => PrepareMarkup::With(html! {
|
||||||
|
li id=[self.id()] class=[self.classes().get()] {
|
||||||
|
(html.render(cx))
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
|
||||||
ItemKind::Dropdown(menu) => {
|
ItemKind::Dropdown(menu) => {
|
||||||
if let Some(dd) = menu.borrow() {
|
if let Some(dd) = menu.borrow() {
|
||||||
let items = dd.items().render(cx);
|
let items = dd.items().render(cx);
|
||||||
|
|
@ -244,6 +253,17 @@ impl Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Crea un elemento con contenido HTML arbitrario.
|
||||||
|
///
|
||||||
|
/// El contenido se renderiza tal cual lo devuelve el componente [`Html`], dentro de un `<li>`
|
||||||
|
/// con las clases de navegación asociadas a [`Item`].
|
||||||
|
pub fn html(html: Html) -> Self {
|
||||||
|
Item {
|
||||||
|
item_kind: ItemKind::Html(Typed::with(html)),
|
||||||
|
..Default::default()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Crea un elemento de navegación que contiene un menú desplegable [`Dropdown`].
|
/// Crea un elemento de navegación que contiene un menú desplegable [`Dropdown`].
|
||||||
///
|
///
|
||||||
/// Sólo se tienen en cuenta **el título** (si no existe le asigna uno por defecto) y **la lista
|
/// Sólo se tienen en cuenta **el título** (si no existe le asigna uno por defecto) y **la lista
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue