✨ (base): Añade with_menu_end() para menú al final
This commit is contained in:
parent
f265f217bd
commit
165cb49880
7 changed files with 152 additions and 5 deletions
|
|
@ -37,6 +37,8 @@ pub struct Dropdown {
|
|||
/// Devuelve el estilo visual del botón.
|
||||
#[getters(copy)]
|
||||
button_style: button::Style,
|
||||
/// Devuelve si el menú se alinea al final del botón (por defecto, al inicio).
|
||||
menu_end: bool,
|
||||
/// Devuelve la lista de elementos del menú.
|
||||
items: Children,
|
||||
}
|
||||
|
|
@ -124,12 +126,23 @@ impl Component for Dropdown {
|
|||
(&title)
|
||||
}
|
||||
}
|
||||
ul class="dropdown-menu" { (items) }
|
||||
ul class=(self.menu_classes()) { (items) }
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
impl Dropdown {
|
||||
// Clases del `<ul>` del menú, compartidas con el renderizado de `nav::Item::dropdown()`.
|
||||
pub(crate) fn menu_classes(&self) -> &'static str {
|
||||
if *self.menu_end() {
|
||||
"dropdown-menu dropdown-menu-end"
|
||||
} else {
|
||||
"dropdown-menu"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[builder_impl]
|
||||
impl Dropdown {
|
||||
// **< Dropdown BUILDER >***********************************************************************
|
||||
|
|
@ -170,6 +183,16 @@ impl Dropdown {
|
|||
self
|
||||
}
|
||||
|
||||
/// Alinea el menú al final del botón (por defecto, al inicio).
|
||||
///
|
||||
/// Útil cuando el desplegable está pegado al borde final de la página, p. ej. el último de una
|
||||
/// [`Navbar`], para que el menú se abra hacia el interior y no se salga de la pantalla. No
|
||||
/// tiene efecto en un menú sin título, que es estático y no tiene botón al que alinearse.
|
||||
pub fn with_menu_end(mut self, end: bool) -> Self {
|
||||
self.menu_end = end;
|
||||
self
|
||||
}
|
||||
|
||||
/// Añade un nuevo elemento al menú o modifica la lista de elementos del menú con una operación
|
||||
/// [`TypedOp`].
|
||||
///
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@ impl Component for Item {
|
|||
{
|
||||
(title)
|
||||
}
|
||||
ul class="dropdown-menu" {
|
||||
ul class=(dd.menu_classes()) {
|
||||
(items)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue