✨ [bootsier] Nuevos componentes Navbar y Offcanvas
This commit is contained in:
parent
83e09c38ce
commit
db13a6ab8b
17 changed files with 743 additions and 16 deletions
63
packages/pagetop-bootsier/src/bs/navbar/element.rs
Normal file
63
packages/pagetop-bootsier/src/bs/navbar/element.rs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
use pagetop::prelude::*;
|
||||
|
||||
use crate::bs::navbar;
|
||||
|
||||
#[derive(AutoDefault)]
|
||||
pub enum ElementType {
|
||||
#[default]
|
||||
None,
|
||||
Nav(navbar::Nav),
|
||||
Text(L10n),
|
||||
}
|
||||
|
||||
// Element.
|
||||
|
||||
#[rustfmt::skip]
|
||||
#[derive(AutoDefault)]
|
||||
pub struct Element {
|
||||
element_type: ElementType,
|
||||
}
|
||||
|
||||
impl ComponentTrait for Element {
|
||||
fn new() -> Self {
|
||||
Element::default()
|
||||
}
|
||||
|
||||
fn prepare_component(&self, cx: &mut Context) -> PrepareMarkup {
|
||||
match self.element_type() {
|
||||
ElementType::None => PrepareMarkup::None,
|
||||
ElementType::Nav(_nav) => PrepareMarkup::With(html! {
|
||||
span class="navbar-text" {
|
||||
("Prueba")
|
||||
}
|
||||
}),
|
||||
ElementType::Text(label) => PrepareMarkup::With(html! {
|
||||
span class="navbar-text" {
|
||||
(label.escaped(cx.langid()))
|
||||
}
|
||||
}),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Element {
|
||||
pub fn nav(nav: navbar::Nav) -> Self {
|
||||
Element {
|
||||
element_type: ElementType::Nav(nav),
|
||||
..Default::default()
|
||||
}
|
||||
}
|
||||
|
||||
pub fn text(label: L10n) -> Self {
|
||||
Element {
|
||||
element_type: ElementType::Text(label),
|
||||
..Default::default()
|
||||
}
|
||||
}
|
||||
|
||||
// Element GETTERS.
|
||||
|
||||
pub fn element_type(&self) -> &ElementType {
|
||||
&self.element_type
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue