🔥 Remove unnecessary SetDefault in OptionClasses
This commit is contained in:
parent
556a160c16
commit
6dd9eb28f5
12 changed files with 52 additions and 40 deletions
|
|
@ -131,18 +131,24 @@ impl ThemeTrait for Bootsier {
|
||||||
}
|
}
|
||||||
COMPONENT_BASE_HEADING => {
|
COMPONENT_BASE_HEADING => {
|
||||||
let h = component_as_mut::<Heading>(component);
|
let h = component_as_mut::<Heading>(component);
|
||||||
let original = h.display().to_string();
|
|
||||||
h.alter_classes(
|
|
||||||
ClassesOp::SetDefault,
|
|
||||||
match h.display() {
|
match h.display() {
|
||||||
HeadingDisplay::ExtraLarge => "display-1",
|
HeadingDisplay::ExtraLarge => {
|
||||||
HeadingDisplay::XxLarge => "display-2",
|
h.alter_classes(ClassesOp::Replace(h.display().to_string()), "display-1");
|
||||||
HeadingDisplay::XLarge => "display-3",
|
}
|
||||||
HeadingDisplay::Large => "display-4",
|
HeadingDisplay::XxLarge => {
|
||||||
HeadingDisplay::Medium => "display-5",
|
h.alter_classes(ClassesOp::Replace(h.display().to_string()), "display-2");
|
||||||
_ => original.as_str(),
|
}
|
||||||
},
|
HeadingDisplay::XLarge => {
|
||||||
);
|
h.alter_classes(ClassesOp::Replace(h.display().to_string()), "display-3");
|
||||||
|
}
|
||||||
|
HeadingDisplay::Large => {
|
||||||
|
h.alter_classes(ClassesOp::Replace(h.display().to_string()), "display-4");
|
||||||
|
}
|
||||||
|
HeadingDisplay::Medium => {
|
||||||
|
h.alter_classes(ClassesOp::Replace(h.display().to_string()), "display-5");
|
||||||
|
}
|
||||||
|
_ => {}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
COMPONENT_BASE_PARAGRAPH => {
|
COMPONENT_BASE_PARAGRAPH => {
|
||||||
let p = component_as_mut::<Paragraph>(component);
|
let p = component_as_mut::<Paragraph>(component);
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ pub struct Block {
|
||||||
|
|
||||||
impl ComponentTrait for Block {
|
impl ComponentTrait for Block {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
Block::default().with_classes(ClassesOp::SetDefault, "block")
|
Block::default().with_classes(ClassesOp::AddDefault, "block")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle(&self) -> Handle {
|
fn handle(&self) -> Handle {
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ pub struct Container {
|
||||||
impl ComponentTrait for Container {
|
impl ComponentTrait for Container {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
Container::default()
|
Container::default()
|
||||||
.with_classes(ClassesOp::SetDefault, flex::Direction::Default.to_string())
|
.with_classes(ClassesOp::AddDefault, flex::Direction::Default.to_string())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle(&self) -> Handle {
|
fn handle(&self) -> Handle {
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,8 @@ pub struct Item {
|
||||||
impl ComponentTrait for Item {
|
impl ComponentTrait for Item {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
Item::default()
|
Item::default()
|
||||||
.with_item_classes(ClassesOp::SetDefault, "pt-flex__item")
|
.with_item_classes(ClassesOp::AddDefault, "pt-flex__item")
|
||||||
.with_inner_classes(ClassesOp::SetDefault, "pt-flex__item-inner")
|
.with_inner_classes(ClassesOp::AddDefault, "pt-flex__item-inner")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle(&self) -> Handle {
|
fn handle(&self) -> Handle {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ pub struct Button {
|
||||||
|
|
||||||
impl ComponentTrait for Button {
|
impl ComponentTrait for Button {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
Button::default().with_classes(ClassesOp::SetDefault, "btn btn-primary form-button")
|
Button::default().with_classes(ClassesOp::AddDefault, "btn btn-primary form-button")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle(&self) -> Handle {
|
fn handle(&self) -> Handle {
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ pub struct Date {
|
||||||
|
|
||||||
impl ComponentTrait for Date {
|
impl ComponentTrait for Date {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
Date::default().with_classes(ClassesOp::SetDefault, "form-item form-type-date")
|
Date::default().with_classes(ClassesOp::AddDefault, "form-item form-type-date")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle(&self) -> Handle {
|
fn handle(&self) -> Handle {
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ pub struct Form {
|
||||||
impl ComponentTrait for Form {
|
impl ComponentTrait for Form {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
Form::default()
|
Form::default()
|
||||||
.with_classes(ClassesOp::SetDefault, "form")
|
.with_classes(ClassesOp::AddDefault, "form")
|
||||||
.with_charset("UTF-8")
|
.with_charset("UTF-8")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ pub struct Input {
|
||||||
impl ComponentTrait for Input {
|
impl ComponentTrait for Input {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
Input::default()
|
Input::default()
|
||||||
.with_classes(ClassesOp::SetDefault, "form-item form-type-textfield")
|
.with_classes(ClassesOp::AddDefault, "form-item form-type-textfield")
|
||||||
.with_size(Some(60))
|
.with_size(Some(60))
|
||||||
.with_maxlength(Some(128))
|
.with_maxlength(Some(128))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ pub struct Icon {
|
||||||
|
|
||||||
impl ComponentTrait for Icon {
|
impl ComponentTrait for Icon {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
Icon::default().with_classes(ClassesOp::SetDefault, "bi-question-circle-fill")
|
Icon::default().with_icon_name("question-circle-fill")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle(&self) -> Handle {
|
fn handle(&self) -> Handle {
|
||||||
|
|
@ -75,7 +75,10 @@ impl Icon {
|
||||||
|
|
||||||
#[fn_builder]
|
#[fn_builder]
|
||||||
pub fn alter_icon_name(&mut self, name: &str) -> &mut Self {
|
pub fn alter_icon_name(&mut self, name: &str) -> &mut Self {
|
||||||
self.alter_classes(ClassesOp::SetDefault, concat_string!("bi-", name));
|
self.classes.alter_value(
|
||||||
|
ClassesOp::Replace(concat_string!("bi-", self.icon_name)),
|
||||||
|
concat_string!("bi-", name),
|
||||||
|
);
|
||||||
self.icon_name = name.to_owned();
|
self.icon_name = name.to_owned();
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ pub struct Image {
|
||||||
|
|
||||||
impl ComponentTrait for Image {
|
impl ComponentTrait for Image {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
Image::default().with_classes(ClassesOp::SetDefault, IMG_FLUID)
|
Image::default().with_classes(ClassesOp::AddDefault, IMG_FLUID)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle(&self) -> Handle {
|
fn handle(&self) -> Handle {
|
||||||
|
|
@ -70,19 +70,19 @@ impl Image {
|
||||||
pub fn with(source: &str) -> Self {
|
pub fn with(source: &str) -> Self {
|
||||||
Image::default()
|
Image::default()
|
||||||
.with_source(source)
|
.with_source(source)
|
||||||
.with_classes(ClassesOp::SetDefault, IMG_FLUID)
|
.with_classes(ClassesOp::AddDefault, IMG_FLUID)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn fixed(source: &str) -> Self {
|
pub fn fixed(source: &str) -> Self {
|
||||||
Image::default()
|
Image::default()
|
||||||
.with_source(source)
|
.with_source(source)
|
||||||
.with_classes(ClassesOp::SetDefault, IMG_FIXED)
|
.with_classes(ClassesOp::AddDefault, IMG_FIXED)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn pagetop() -> Self {
|
pub fn pagetop() -> Self {
|
||||||
Image::default()
|
Image::default()
|
||||||
.with_source("/base/pagetop-logo.svg")
|
.with_source("/base/pagetop-logo.svg")
|
||||||
.with_classes(ClassesOp::SetDefault, IMG_FIXED)
|
.with_classes(ClassesOp::AddDefault, IMG_FIXED)
|
||||||
.with_size(ImageSize::Size(64, 64))
|
.with_size(ImageSize::Size(64, 64))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,8 @@ pub struct Wrapper {
|
||||||
impl ComponentTrait for Wrapper {
|
impl ComponentTrait for Wrapper {
|
||||||
fn new() -> Self {
|
fn new() -> Self {
|
||||||
Wrapper::default()
|
Wrapper::default()
|
||||||
.with_classes(ClassesOp::SetDefault, "container")
|
.with_classes(ClassesOp::AddDefault, "container")
|
||||||
.with_inner_classes(ClassesOp::SetDefault, "container")
|
.with_inner_classes(ClassesOp::AddDefault, "container")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle(&self) -> Handle {
|
fn handle(&self) -> Handle {
|
||||||
|
|
@ -99,25 +99,33 @@ impl ComponentTrait for Wrapper {
|
||||||
|
|
||||||
impl Wrapper {
|
impl Wrapper {
|
||||||
pub fn header() -> Self {
|
pub fn header() -> Self {
|
||||||
let mut c = Wrapper::new().with_classes(ClassesOp::SetDefault, "header");
|
let mut c = Wrapper::default()
|
||||||
|
.with_classes(ClassesOp::AddDefault, "header")
|
||||||
|
.with_inner_classes(ClassesOp::AddDefault, "container");
|
||||||
c.wrapper_type = WrapperType::Header;
|
c.wrapper_type = WrapperType::Header;
|
||||||
c
|
c
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn footer() -> Self {
|
pub fn footer() -> Self {
|
||||||
let mut c = Wrapper::new().with_classes(ClassesOp::SetDefault, "footer");
|
let mut c = Wrapper::default()
|
||||||
|
.with_classes(ClassesOp::AddDefault, "footer")
|
||||||
|
.with_inner_classes(ClassesOp::AddDefault, "container");
|
||||||
c.wrapper_type = WrapperType::Footer;
|
c.wrapper_type = WrapperType::Footer;
|
||||||
c
|
c
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn main() -> Self {
|
pub fn main() -> Self {
|
||||||
let mut c = Wrapper::new().with_classes(ClassesOp::SetDefault, "main");
|
let mut c = Wrapper::default()
|
||||||
|
.with_classes(ClassesOp::AddDefault, "main")
|
||||||
|
.with_inner_classes(ClassesOp::AddDefault, "container");
|
||||||
c.wrapper_type = WrapperType::Main;
|
c.wrapper_type = WrapperType::Main;
|
||||||
c
|
c
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn section() -> Self {
|
pub fn section() -> Self {
|
||||||
let mut c = Wrapper::new().with_classes(ClassesOp::SetDefault, "section");
|
let mut c = Wrapper::default()
|
||||||
|
.with_classes(ClassesOp::AddDefault, "section")
|
||||||
|
.with_inner_classes(ClassesOp::AddDefault, "container");
|
||||||
c.wrapper_type = WrapperType::Section;
|
c.wrapper_type = WrapperType::Section;
|
||||||
c
|
c
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@
|
||||||
//! This *helper* differentiates between default classes (generally associated with styles provided
|
//! This *helper* differentiates between default classes (generally associated with styles provided
|
||||||
//! by the theme) and user classes (for customizing components based on application styles).
|
//! by the theme) and user classes (for customizing components based on application styles).
|
||||||
//!
|
//!
|
||||||
//! Default classes can be added using [SetDefault] and [AddDefault], while user classes can be
|
//! Default classes can be added using [AddDefault], while user classes can be added using [Add].
|
||||||
//! added using [Add]. Operations to [Remove], [Replace] or [ReplaceIfExists] a class, as well as
|
//! Operations to [Remove], [Replace] or [ReplaceIfExists] a class, as well as to [Reset] user
|
||||||
//! to [Reset] user classes, are also provided.
|
//! classes, are also provided.
|
||||||
//!
|
//!
|
||||||
//! Although the order of the classes is irrelevant (<https://stackoverflow.com/a/1321712>), default
|
//! Although the order of the classes is irrelevant (<https://stackoverflow.com/a/1321712>), default
|
||||||
//! classes will be presented before user classes and duplicate classes will not be allowed.
|
//! classes will be presented before user classes and duplicate classes will not be allowed.
|
||||||
|
|
@ -13,7 +13,6 @@
|
||||||
use crate::fn_builder;
|
use crate::fn_builder;
|
||||||
|
|
||||||
pub enum ClassesOp {
|
pub enum ClassesOp {
|
||||||
SetDefault,
|
|
||||||
AddDefault,
|
AddDefault,
|
||||||
Add,
|
Add,
|
||||||
Remove,
|
Remove,
|
||||||
|
|
@ -51,10 +50,6 @@ impl OptionClasses {
|
||||||
let classes: Vec<&str> = classes.split_ascii_whitespace().collect();
|
let classes: Vec<&str> = classes.split_ascii_whitespace().collect();
|
||||||
|
|
||||||
match op {
|
match op {
|
||||||
ClassesOp::SetDefault => {
|
|
||||||
self.0.retain(|(_, t)| t.ne(&ClassType::Default));
|
|
||||||
self.add(&classes, 0, ClassType::Default);
|
|
||||||
}
|
|
||||||
ClassesOp::AddDefault => {
|
ClassesOp::AddDefault => {
|
||||||
let pos = match self.0.iter().position(|(_, t)| t.eq(&ClassType::User)) {
|
let pos = match self.0.iter().position(|(_, t)| t.eq(&ClassType::User)) {
|
||||||
Some(pos) => pos,
|
Some(pos) => pos,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue