👽️ Apply latest changes to the API

This commit is contained in:
Manuel Cillero 2023-11-19 00:44:04 +01:00
parent 9c16aa2519
commit 255fb393a9
6 changed files with 53 additions and 18 deletions

View file

@ -75,13 +75,13 @@ fn hello_world() -> Wrapper {
L10n::t("hello_code", &LOCALES_HOMEDEMO),
)
.with_target(ButtonTarget::Blank)
.with_left_icon(Icon::with("git"))
.with_left_icon(Some(Icon::with("git")))
.with_classes(ClassesOp::Add, "code-link")
.with_font_size(FontSize::Medium),
)
.add_component(
Button::link("#welcome", L10n::t("hello_welcome", &LOCALES_HOMEDEMO))
.with_left_icon(Icon::with("arrow-down-circle-fill"))
.with_left_icon(Some(Icon::with("arrow-down-circle-fill")))
.with_classes(ClassesOp::Add, "welcome-link")
.with_font_size(FontSize::Medium),
),

View file

@ -34,12 +34,13 @@ impl ComponentTrait for Branding {
}
fn prepare_component(&self, cx: &mut Context) -> PrepareMarkup {
let logo = self.logo().render(cx);
let title = L10n::l("site_home").using(cx.langid());
PrepareMarkup::With(html! {
div id=[self.id()] class="pt-branding" {
div class="pt-branding__wrapper" {
div class="pt-branding__logo" {
(self.logo().render(cx))
@if !logo.is_empty() {
div class="pt-branding__logo" { (logo) }
}
div class="pt-branding__text" {
div class="pt-branding__name" {
@ -93,8 +94,8 @@ impl Branding {
}
#[fn_builder]
pub fn alter_logo(&mut self, logo: Image) -> &mut Self {
self.logo.set(logo);
pub fn alter_logo(&mut self, logo: Option<Image>) -> &mut Self {
self.logo.alter_value(logo);
self
}
@ -114,7 +115,7 @@ impl Branding {
&self.slogan
}
pub fn logo(&self) -> &ArcTypedComponent<Image> {
pub fn logo(&self) -> &OptionComponent<Image> {
&self.logo
}

View file

@ -38,8 +38,8 @@ pub struct Button {
font_size : FontSize,
href : OptionString,
html : OptionTranslated,
left_icon : ButtonIcon,
right_icon : ButtonIcon,
left_icon : OptionComponent<Icon>,
right_icon : OptionComponent<Icon>,
target : ButtonTarget,
}
@ -85,7 +85,7 @@ impl ComponentTrait for Button {
target=[target]
{
(self.left_icon().render(cx))
" " span { (self.html().escaped(cx.langid()).unwrap_or_default()) } " "
" " span { (self.html().escaped(cx.langid())) } " "
(self.right_icon().render(cx))
}
})
@ -163,14 +163,14 @@ impl Button {
}
#[fn_builder]
pub fn alter_left_icon(&mut self, icon: Icon) -> &mut Self {
self.left_icon.set(icon);
pub fn alter_left_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.left_icon.alter_value(icon);
self
}
#[fn_builder]
pub fn alter_right_icon(&mut self, icon: Icon) -> &mut Self {
self.right_icon.set(icon);
pub fn alter_right_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.right_icon.alter_value(icon);
self
}
@ -198,11 +198,11 @@ impl Button {
&self.html
}
pub fn left_icon(&self) -> &ButtonIcon {
pub fn left_icon(&self) -> &OptionComponent<Icon> {
&self.left_icon
}
pub fn right_icon(&self) -> &ButtonIcon {
pub fn right_icon(&self) -> &OptionComponent<Icon> {
&self.right_icon
}

View file

@ -67,7 +67,7 @@ impl ComponentTrait for Button {
autofocus=[self.autofocus().get()]
disabled=[self.disabled().get()]
{
(self.value().escaped(cx.langid()).unwrap_or_default())
(self.value().escaped(cx.langid()))
}
})
}

View file

@ -77,7 +77,7 @@ impl ComponentTrait for Heading {
fn prepare_component(&self, cx: &mut Context) -> PrepareMarkup {
let id = self.id();
let classes = self.classes().get();
let text = self.text().escaped(cx.langid()).unwrap_or_default();
let text = self.text().escaped(cx.langid());
PrepareMarkup::With(html! { @match &self.heading_type() {
HeadingType::H1 => h1 id=[id] class=[classes] { (text) },
HeadingType::H2 => h2 id=[id] class=[classes] { (text) },

View file

@ -28,6 +28,8 @@ pub struct Item {
renderable : Renderable,
item_type : ItemType,
description: OptionTranslated,
left_icon : OptionComponent<Icon>,
right_icon : OptionComponent<Icon>,
}
impl_handle!(COMPONENT_BASE_MENU_ITEM for Item);
@ -47,26 +49,36 @@ impl ComponentTrait for Item {
fn prepare_component(&self, cx: &mut Context) -> PrepareMarkup {
let description = self.description.using(cx.langid());
let left_icon = self.left_icon().render(cx);
let right_icon = self.right_icon().render(cx);
match self.item_type() {
ItemType::Void => PrepareMarkup::None,
ItemType::Label(label) => PrepareMarkup::With(html! {
li class="pt-menu__label" {
span title=[description] {
(left_icon)
(label.escaped(cx.langid()))
(right_icon)
}
}
}),
ItemType::Link(label, path) => PrepareMarkup::With(html! {
li class="pt-menu__link" {
a href=(path(cx)) title=[description] {
(left_icon)
(label.escaped(cx.langid()))
(right_icon)
}
}
}),
ItemType::LinkBlank(label, path) => PrepareMarkup::With(html! {
li class="pt-menu__link" {
a href=(path(cx)) title=[description] target="_blank" {
(left_icon)
(label.escaped(cx.langid()))
(right_icon)
}
}
}),
@ -78,6 +90,7 @@ impl ComponentTrait for Item {
ItemType::Submenu(label, submenu) => PrepareMarkup::With(html! {
li class="pt-menu__children" {
a href="#" title=[description] {
(left_icon)
(label.escaped(cx.langid())) i class="pt-menu__icon bi-chevron-down" {}
}
div class="pt-menu__subs" {
@ -88,6 +101,7 @@ impl ComponentTrait for Item {
ItemType::Megamenu(label, megamenu) => PrepareMarkup::With(html! {
li class="pt-menu__children" {
a href="#" title=[description] {
(left_icon)
(label.escaped(cx.langid())) i class="pt-menu__icon bi-chevron-down" {}
}
div class="pt-menu__subs pt-menu__mega" {
@ -162,6 +176,18 @@ impl Item {
self
}
#[fn_builder]
pub fn alter_left_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.left_icon.alter_value(icon);
self
}
#[fn_builder]
pub fn alter_right_icon(&mut self, icon: Option<Icon>) -> &mut Self {
self.right_icon.alter_value(icon);
self
}
// Item GETTERS.
pub fn item_type(&self) -> &ItemType {
@ -171,4 +197,12 @@ impl Item {
pub fn description(&self) -> &OptionTranslated {
&self.description
}
pub fn left_icon(&self) -> &OptionComponent<Icon> {
&self.left_icon
}
pub fn right_icon(&self) -> &OptionComponent<Icon> {
&self.right_icon
}
}