💥 Consolidate component class name management

This commit is contained in:
Manuel Cillero 2023-09-11 21:07:45 +02:00
parent d1bfb2a799
commit 45d8c55e61
19 changed files with 178 additions and 165 deletions

View file

@ -123,7 +123,7 @@ impl Anchor {
}
#[fn_builder]
pub fn alter_classes(&mut self, op: ClassesOp, classes: &str) -> &mut Self {
pub fn alter_classes(&mut self, op: ClassesOp, classes: &[impl ToString]) -> &mut Self {
self.classes.alter_value(op, classes);
self
}
@ -134,8 +134,8 @@ impl Anchor {
self.classes.alter_value(
ClassesOp::SetDefault,
match self.anchor_type {
AnchorType::Button => "btn btn-primary",
_ => "",
AnchorType::Button => &["btn", "btn-primary"],
_ => &[],
},
);
self

View file

@ -18,7 +18,7 @@ pub struct Block {
impl ComponentTrait for Block {
fn new() -> Self {
Block::default().with_classes(ClassesOp::SetDefault, "block")
Block::default().with_classes(ClassesOp::SetDefault, &["block"])
}
fn handle(&self) -> Handle {
@ -82,7 +82,7 @@ impl Block {
}
#[fn_builder]
pub fn alter_classes(&mut self, op: ClassesOp, classes: &str) -> &mut Self {
pub fn alter_classes(&mut self, op: ClassesOp, classes: &[impl ToString]) -> &mut Self {
self.classes.alter_value(op, classes);
self
}

View file

@ -30,8 +30,8 @@ pub struct Container {
impl ComponentTrait for Container {
fn new() -> Self {
Container::default()
.with_classes(ClassesOp::SetDefault, "container")
.with_inner_classes(ClassesOp::SetDefault, "container")
.with_classes(ClassesOp::SetDefault, &["container"])
.with_inner_classes(ClassesOp::SetDefault, &["container"])
}
fn handle(&self) -> Handle {
@ -99,25 +99,25 @@ impl ComponentTrait for Container {
impl Container {
pub fn header() -> Self {
let mut c = Container::new().with_classes(ClassesOp::SetDefault, "header");
let mut c = Container::new().with_classes(ClassesOp::SetDefault, &["header"]);
c.container_type = ContainerType::Header;
c
}
pub fn footer() -> Self {
let mut c = Container::new().with_classes(ClassesOp::SetDefault, "footer");
let mut c = Container::new().with_classes(ClassesOp::SetDefault, &["footer"]);
c.container_type = ContainerType::Footer;
c
}
pub fn main() -> Self {
let mut c = Container::new().with_classes(ClassesOp::SetDefault, "main");
let mut c = Container::new().with_classes(ClassesOp::SetDefault, &["main"]);
c.container_type = ContainerType::Main;
c
}
pub fn section() -> Self {
let mut c = Container::new().with_classes(ClassesOp::SetDefault, "section");
let mut c = Container::new().with_classes(ClassesOp::SetDefault, &["section"]);
c.container_type = ContainerType::Section;
c
}
@ -143,13 +143,13 @@ impl Container {
}
#[fn_builder]
pub fn alter_classes(&mut self, op: ClassesOp, classes: &str) -> &mut Self {
pub fn alter_classes(&mut self, op: ClassesOp, classes: &[impl ToString]) -> &mut Self {
self.classes.alter_value(op, classes);
self
}
#[fn_builder]
pub fn alter_inner_classes(&mut self, op: ClassesOp, classes: &str) -> &mut Self {
pub fn alter_inner_classes(&mut self, op: ClassesOp, classes: &[impl ToString]) -> &mut Self {
self.inner_classes.alter_value(op, classes);
self
}

View file

@ -29,8 +29,8 @@ pub struct Button {
impl ComponentTrait for Button {
fn new() -> Self {
Button::default()
.with_classes(ClassesOp::SetDefault, "btn btn-primary")
.with_classes(ClassesOp::Add, "form-button")
.with_classes(ClassesOp::SetDefault, &["btn", "btn-primary"])
.with_classes(ClassesOp::Add, &["form-button"])
}
fn handle(&self) -> Handle {
@ -76,7 +76,10 @@ impl Button {
pub fn submit(value: L10n) -> Self {
let mut button = Button::new()
.with_classes(ClassesOp::Replace("form-button".to_owned()), "form-submit")
.with_classes(
ClassesOp::Replace("form-button".to_owned()),
&["form-submit"],
)
.with_value(value);
button.button_type = ButtonType::Submit;
button
@ -84,7 +87,10 @@ impl Button {
pub fn reset(value: L10n) -> Self {
let mut button = Button::new()
.with_classes(ClassesOp::Replace("form-button".to_owned()), "form-reset")
.with_classes(
ClassesOp::Replace("form-button".to_owned()),
&["form-reset"],
)
.with_value(value);
button.button_type = ButtonType::Reset;
button
@ -105,7 +111,7 @@ impl Button {
}
#[fn_builder]
pub fn alter_classes(&mut self, op: ClassesOp, classes: &str) -> &mut Self {
pub fn alter_classes(&mut self, op: ClassesOp, classes: &[impl ToString]) -> &mut Self {
self.classes.alter_value(op, classes);
self
}

View file

@ -24,8 +24,8 @@ pub struct Date {
impl ComponentTrait for Date {
fn new() -> Self {
Date::default()
.with_classes(ClassesOp::SetDefault, "form-item")
.with_classes(ClassesOp::Add, "form-type-date")
.with_classes(ClassesOp::SetDefault, &["form-item"])
.with_classes(ClassesOp::Add, &["form-type-date"])
}
fn handle(&self) -> Handle {
@ -90,7 +90,7 @@ impl Date {
}
#[fn_builder]
pub fn alter_classes(&mut self, op: ClassesOp, classes: &str) -> &mut Self {
pub fn alter_classes(&mut self, op: ClassesOp, classes: &[impl ToString]) -> &mut Self {
self.classes.alter_value(op, classes);
self
}

View file

@ -28,7 +28,7 @@ pub struct Form {
impl ComponentTrait for Form {
fn new() -> Self {
Form::default()
.with_classes(ClassesOp::SetDefault, "form")
.with_classes(ClassesOp::SetDefault, &["form"])
.with_charset("UTF-8")
}
@ -97,7 +97,7 @@ impl Form {
}
#[fn_builder]
pub fn alter_classes(&mut self, op: ClassesOp, classes: &str) -> &mut Self {
pub fn alter_classes(&mut self, op: ClassesOp, classes: &[impl ToString]) -> &mut Self {
self.classes.alter_value(op, classes);
self
}

View file

@ -42,8 +42,8 @@ pub struct Input {
impl ComponentTrait for Input {
fn new() -> Self {
Input::default()
.with_classes(ClassesOp::SetDefault, "form-item")
.with_classes(ClassesOp::Add, "form-type-textfield")
.with_classes(ClassesOp::SetDefault, &["form-item"])
.with_classes(ClassesOp::Add, &["form-type-textfield"])
.with_size(Some(60))
.with_maxlength(Some(128))
}
@ -116,7 +116,7 @@ impl Input {
pub fn password() -> Self {
let mut input = Input::new().with_classes(
ClassesOp::Replace("form-type-textfield".to_owned()),
"form-type-password",
&["form-type-password"],
);
input.input_type = InputType::Password;
input
@ -125,7 +125,7 @@ impl Input {
pub fn search() -> Self {
let mut input = Input::new().with_classes(
ClassesOp::Replace("form-type-textfield".to_owned()),
"form-type-search",
&["form-type-search"],
);
input.input_type = InputType::Search;
input
@ -134,7 +134,7 @@ impl Input {
pub fn email() -> Self {
let mut input = Input::new().with_classes(
ClassesOp::Replace("form-type-textfield".to_owned()),
"form-type-email",
&["form-type-email"],
);
input.input_type = InputType::Email;
input
@ -143,7 +143,7 @@ impl Input {
pub fn telephone() -> Self {
let mut input = Input::new().with_classes(
ClassesOp::Replace("form-type-textfield".to_owned()),
"form-type-telephone",
&["form-type-telephone"],
);
input.input_type = InputType::Telephone;
input
@ -152,7 +152,7 @@ impl Input {
pub fn url() -> Self {
let mut input = Input::new().with_classes(
ClassesOp::Replace("form-type-textfield".to_owned()),
"form-type-url",
&["form-type-url"],
);
input.input_type = InputType::Url;
input
@ -173,7 +173,7 @@ impl Input {
}
#[fn_builder]
pub fn alter_classes(&mut self, op: ClassesOp, classes: &str) -> &mut Self {
pub fn alter_classes(&mut self, op: ClassesOp, classes: &[impl ToString]) -> &mut Self {
self.classes.alter_value(op, classes);
self
}
@ -183,7 +183,7 @@ impl Input {
self.name.alter_value(name);
self.alter_classes(
ClassesOp::SetDefault,
concat_string!("form-item form-item-", name).as_str(),
&[concat_string!("form-item form-item-", name)],
);
self
}

View file

@ -50,7 +50,7 @@ pub struct Column {
impl ComponentTrait for Column {
fn new() -> Self {
Column::default().with_classes(ClassesOp::SetDefault, SIZE_DEFAULT)
Column::default().with_classes(ClassesOp::SetDefault, &[SIZE_DEFAULT])
}
fn handle(&self) -> Handle {
@ -108,7 +108,7 @@ impl Column {
}
#[fn_builder]
pub fn alter_classes(&mut self, op: ClassesOp, classes: &str) -> &mut Self {
pub fn alter_classes(&mut self, op: ClassesOp, classes: &[impl ToString]) -> &mut Self {
self.classes.alter_value(op, classes);
self
}
@ -117,19 +117,19 @@ impl Column {
#[fn_builder]
pub fn alter_size(&mut self, size: ColumnSize) -> &mut Self {
match size {
ColumnSize::Default => self.alter_classes(ClassesOp::SetDefault, SIZE_DEFAULT),
ColumnSize::Is1of12 => self.alter_classes(ClassesOp::SetDefault, SIZE_1_OF_12),
ColumnSize::Is2of12 => self.alter_classes(ClassesOp::SetDefault, SIZE_2_OF_12),
ColumnSize::Is3of12 => self.alter_classes(ClassesOp::SetDefault, SIZE_3_OF_12),
ColumnSize::Is4of12 => self.alter_classes(ClassesOp::SetDefault, SIZE_4_OF_12),
ColumnSize::Is5of12 => self.alter_classes(ClassesOp::SetDefault, SIZE_5_OF_12),
ColumnSize::Is6of12 => self.alter_classes(ClassesOp::SetDefault, SIZE_6_OF_12),
ColumnSize::Is7of12 => self.alter_classes(ClassesOp::SetDefault, SIZE_7_OF_12),
ColumnSize::Is8of12 => self.alter_classes(ClassesOp::SetDefault, SIZE_8_OF_12),
ColumnSize::Is9of12 => self.alter_classes(ClassesOp::SetDefault, SIZE_9_OF_12),
ColumnSize::Is10of12 => self.alter_classes(ClassesOp::SetDefault, SIZE_10_OF_12),
ColumnSize::Is11of12 => self.alter_classes(ClassesOp::SetDefault, SIZE_11_OF_12),
ColumnSize::IsFull => self.alter_classes(ClassesOp::SetDefault, SIZE_12_OF_12),
ColumnSize::Default => self.alter_classes(ClassesOp::SetDefault, &[SIZE_DEFAULT]),
ColumnSize::Is1of12 => self.alter_classes(ClassesOp::SetDefault, &[SIZE_1_OF_12]),
ColumnSize::Is2of12 => self.alter_classes(ClassesOp::SetDefault, &[SIZE_2_OF_12]),
ColumnSize::Is3of12 => self.alter_classes(ClassesOp::SetDefault, &[SIZE_3_OF_12]),
ColumnSize::Is4of12 => self.alter_classes(ClassesOp::SetDefault, &[SIZE_4_OF_12]),
ColumnSize::Is5of12 => self.alter_classes(ClassesOp::SetDefault, &[SIZE_5_OF_12]),
ColumnSize::Is6of12 => self.alter_classes(ClassesOp::SetDefault, &[SIZE_6_OF_12]),
ColumnSize::Is7of12 => self.alter_classes(ClassesOp::SetDefault, &[SIZE_7_OF_12]),
ColumnSize::Is8of12 => self.alter_classes(ClassesOp::SetDefault, &[SIZE_8_OF_12]),
ColumnSize::Is9of12 => self.alter_classes(ClassesOp::SetDefault, &[SIZE_9_OF_12]),
ColumnSize::Is10of12 => self.alter_classes(ClassesOp::SetDefault, &[SIZE_10_OF_12]),
ColumnSize::Is11of12 => self.alter_classes(ClassesOp::SetDefault, &[SIZE_11_OF_12]),
ColumnSize::IsFull => self.alter_classes(ClassesOp::SetDefault, &[SIZE_12_OF_12]),
};
self.size = size;
self

View file

@ -19,7 +19,7 @@ pub struct Row {
impl ComponentTrait for Row {
fn new() -> Self {
Row::default().with_classes(ClassesOp::SetDefault, "row")
Row::default().with_classes(ClassesOp::SetDefault, &["row"])
}
fn handle(&self) -> Handle {
@ -77,7 +77,7 @@ impl Row {
}
#[fn_builder]
pub fn alter_classes(&mut self, op: ClassesOp, classes: &str) -> &mut Self {
pub fn alter_classes(&mut self, op: ClassesOp, classes: &[impl ToString]) -> &mut Self {
self.classes.alter_value(op, classes);
self
}

View file

@ -133,7 +133,7 @@ impl Heading {
}
#[fn_builder]
pub fn alter_classes(&mut self, op: ClassesOp, classes: &str) -> &mut Self {
pub fn alter_classes(&mut self, op: ClassesOp, classes: &[impl ToString]) -> &mut Self {
self.classes.alter_value(op, classes);
self
}
@ -153,19 +153,19 @@ impl Heading {
#[rustfmt::skip]
#[fn_builder]
pub fn alter_display(&mut self, display: HeadingDisplay) -> &mut Self {
self.display = display;
self.classes.alter_value(
ClassesOp::SetDefault,
match self.display {
HeadingDisplay::XxLarge => "display-2",
HeadingDisplay::Large => "display-3",
HeadingDisplay::Medium => "display-4",
HeadingDisplay::Small => "display-5",
HeadingDisplay::XxSmall => "display-6",
HeadingDisplay::Normal => "",
HeadingDisplay::Subtitle => "",
match display {
HeadingDisplay::XxLarge => &["display-2"],
HeadingDisplay::Large => &["display-3"],
HeadingDisplay::Medium => &["display-4"],
HeadingDisplay::Small => &["display-5"],
HeadingDisplay::XxSmall => &["display-6"],
HeadingDisplay::Normal => &[],
HeadingDisplay::Subtitle => &[],
},
);
self.display = display;
self
}

View file

@ -13,7 +13,7 @@ pub struct Icon {
impl ComponentTrait for Icon {
fn new() -> Self {
Icon::default().with_classes(ClassesOp::SetDefault, "bi-question-circle-fill")
Icon::default().with_classes(ClassesOp::SetDefault, &["bi-question-circle-fill"])
}
fn handle(&self) -> Handle {
@ -63,13 +63,13 @@ impl Icon {
self.icon_name = name.to_owned();
self.alter_classes(
ClassesOp::SetDefault,
concat_string!("bi-", self.icon_name).as_str(),
&[concat_string!("bi-", self.icon_name)],
);
self
}
#[fn_builder]
pub fn alter_classes(&mut self, op: ClassesOp, classes: &str) -> &mut Self {
pub fn alter_classes(&mut self, op: ClassesOp, classes: &[impl ToString]) -> &mut Self {
self.classes.alter_value(op, classes);
self
}

View file

@ -24,7 +24,7 @@ pub struct Image {
impl ComponentTrait for Image {
fn new() -> Self {
Image::default().with_classes(ClassesOp::SetDefault, "img-fluid")
Image::default().with_classes(ClassesOp::SetDefault, &["img-fluid"])
}
fn handle(&self) -> Handle {
@ -93,7 +93,7 @@ impl Image {
}
#[fn_builder]
pub fn alter_classes(&mut self, op: ClassesOp, classes: &str) -> &mut Self {
pub fn alter_classes(&mut self, op: ClassesOp, classes: &[impl ToString]) -> &mut Self {
self.classes.alter_value(op, classes);
self
}

View file

@ -84,7 +84,7 @@ impl Paragraph {
}
#[fn_builder]
pub fn alter_classes(&mut self, op: ClassesOp, classes: &str) -> &mut Self {
pub fn alter_classes(&mut self, op: ClassesOp, classes: &[impl ToString]) -> &mut Self {
self.classes.alter_value(op, classes);
self
}
@ -103,18 +103,18 @@ impl Paragraph {
#[rustfmt::skip]
#[fn_builder]
pub fn alter_display(&mut self, display: ParagraphDisplay) -> &mut Self {
self.display = display;
self.classes.alter_value(
ClassesOp::SetDefault,
match self.display {
ParagraphDisplay::XxLarge => "fs-2",
ParagraphDisplay::Large => "fs-3",
ParagraphDisplay::Medium => "fs-4",
ParagraphDisplay::Small => "fs-5",
ParagraphDisplay::XxSmall => "fs-6",
ParagraphDisplay::Normal => "",
match display {
ParagraphDisplay::XxLarge => &["fs-2"],
ParagraphDisplay::Large => &["fs-3"],
ParagraphDisplay::Medium => &["fs-4"],
ParagraphDisplay::Small => &["fs-5"],
ParagraphDisplay::XxSmall => &["fs-6"],
ParagraphDisplay::Normal => &[],
},
);
self.display = display;
self
}