♻️ Simplifica helpers y quita código redundante
This commit is contained in:
parent
234fe71809
commit
318d7de2b6
3 changed files with 22 additions and 101 deletions
|
|
@ -33,7 +33,7 @@ impl ButtonColor {
|
||||||
classes.push(' ');
|
classes.push(' ');
|
||||||
}
|
}
|
||||||
match self {
|
match self {
|
||||||
Self::Default => unreachable!(),
|
Self::Default => {}
|
||||||
Self::Background(c) => {
|
Self::Background(c) => {
|
||||||
classes.push_str(Self::BTN_PREFIX);
|
classes.push_str(Self::BTN_PREFIX);
|
||||||
classes.push_str(c.as_str());
|
classes.push_str(c.as_str());
|
||||||
|
|
@ -66,24 +66,9 @@ impl ButtonColor {
|
||||||
/// assert_eq!(ButtonColor::Default.to_class(), "");
|
/// assert_eq!(ButtonColor::Default.to_class(), "");
|
||||||
/// ```
|
/// ```
|
||||||
pub fn to_class(self) -> String {
|
pub fn to_class(self) -> String {
|
||||||
match self {
|
let mut class = String::new();
|
||||||
Self::Default => String::new(),
|
self.push_class(&mut class);
|
||||||
Self::Background(c) => {
|
class
|
||||||
let color = c.as_str();
|
|
||||||
let mut class = String::with_capacity(Self::BTN_PREFIX.len() + color.len());
|
|
||||||
class.push_str(Self::BTN_PREFIX);
|
|
||||||
class.push_str(color);
|
|
||||||
class
|
|
||||||
}
|
|
||||||
Self::Outline(c) => {
|
|
||||||
let color = c.as_str();
|
|
||||||
let mut class = String::with_capacity(Self::BTN_OUTLINE_PREFIX.len() + color.len());
|
|
||||||
class.push_str(Self::BTN_OUTLINE_PREFIX);
|
|
||||||
class.push_str(color);
|
|
||||||
class
|
|
||||||
}
|
|
||||||
Self::Link => Self::BTN_LINK.to_string(),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -108,17 +93,15 @@ impl ButtonSize {
|
||||||
/// Añade la clase de tamaño `btn-sm` o `btn-lg` a la cadena de clases.
|
/// Añade la clase de tamaño `btn-sm` o `btn-lg` a la cadena de clases.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub(crate) fn push_class(self, classes: &mut String) {
|
pub(crate) fn push_class(self, classes: &mut String) {
|
||||||
if let Self::Default = self {
|
let class = match self {
|
||||||
return;
|
Self::Default => return,
|
||||||
}
|
Self::Small => Self::BTN_SM,
|
||||||
|
Self::Large => Self::BTN_LG,
|
||||||
|
};
|
||||||
if !classes.is_empty() {
|
if !classes.is_empty() {
|
||||||
classes.push(' ');
|
classes.push(' ');
|
||||||
}
|
}
|
||||||
match self {
|
classes.push_str(class);
|
||||||
Self::Default => unreachable!(),
|
|
||||||
Self::Small => classes.push_str(Self::BTN_SM),
|
|
||||||
Self::Large => classes.push_str(Self::BTN_LG),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Devuelve la clase `btn-sm` o `btn-lg` correspondiente al tamaño del botón.
|
/// Devuelve la clase `btn-sm` o `btn-lg` correspondiente al tamaño del botón.
|
||||||
|
|
@ -132,10 +115,8 @@ impl ButtonSize {
|
||||||
/// assert_eq!(ButtonSize::Default.to_class(), "");
|
/// assert_eq!(ButtonSize::Default.to_class(), "");
|
||||||
/// ```
|
/// ```
|
||||||
pub fn to_class(self) -> String {
|
pub fn to_class(self) -> String {
|
||||||
match self {
|
let mut class = String::new();
|
||||||
Self::Default => String::new(),
|
self.push_class(&mut class);
|
||||||
Self::Small => Self::BTN_SM.to_string(),
|
class
|
||||||
Self::Large => Self::BTN_LG.to_string(),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@ use pagetop::prelude::*;
|
||||||
/// Paleta de colores temáticos.
|
/// Paleta de colores temáticos.
|
||||||
///
|
///
|
||||||
/// Equivalen a los nombres estándar definidos por Bootstrap (`primary`, `secondary`, `success`,
|
/// Equivalen a los nombres estándar definidos por Bootstrap (`primary`, `secondary`, `success`,
|
||||||
/// etc.). Este tipo enumerado sirve de base para componer las clases de color para fondo
|
/// etc.). Este tipo enumerado sirve de referencia para componer las clases de color para el fondo
|
||||||
/// ([`classes::Background`](crate::theme::classes::Background)), bordes
|
/// ([`classes::Background`](crate::theme::classes::Background)), los bordes
|
||||||
/// ([`classes::Border`](crate::theme::classes::Border)) y texto
|
/// ([`classes::Border`](crate::theme::classes::Border)) o para el texto
|
||||||
/// ([`classes::Text`](crate::theme::classes::Text)).
|
/// ([`classes::Text`](crate::theme::classes::Text)).
|
||||||
#[derive(AutoDefault, Clone, Copy, Debug, PartialEq)]
|
#[derive(AutoDefault, Clone, Copy, Debug, PartialEq)]
|
||||||
pub enum Color {
|
pub enum Color {
|
||||||
|
|
@ -39,15 +39,6 @@ impl Color {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Añade el nombre del color a la cadena de clases (reservado).
|
|
||||||
#[inline]
|
|
||||||
pub(crate) fn push_class(self, classes: &mut String) {
|
|
||||||
if !classes.is_empty() {
|
|
||||||
classes.push(' ');
|
|
||||||
}
|
|
||||||
classes.push_str(self.as_str());
|
|
||||||
} */
|
|
||||||
|
|
||||||
/// Devuelve la clase correspondiente al color.
|
/// Devuelve la clase correspondiente al color.
|
||||||
///
|
///
|
||||||
/// # Ejemplos
|
/// # Ejemplos
|
||||||
|
|
@ -254,23 +245,9 @@ impl ColorBg {
|
||||||
/// assert_eq!(ColorBg::Default.to_class(), "");
|
/// assert_eq!(ColorBg::Default.to_class(), "");
|
||||||
/// ```
|
/// ```
|
||||||
pub fn to_class(self) -> String {
|
pub fn to_class(self) -> String {
|
||||||
if let Some(suffix) = self.suffix() {
|
let mut class = String::new();
|
||||||
let base_len = match self {
|
self.push_class(&mut class);
|
||||||
Self::Theme(c) | Self::Subtle(c) => Self::BG_PREFIX.len() + c.as_str().len(),
|
class
|
||||||
_ => Self::BG.len(),
|
|
||||||
};
|
|
||||||
let mut class = String::with_capacity(base_len + suffix.len());
|
|
||||||
match self {
|
|
||||||
Self::Theme(c) | Self::Subtle(c) => {
|
|
||||||
class.push_str(Self::BG_PREFIX);
|
|
||||||
class.push_str(c.as_str());
|
|
||||||
}
|
|
||||||
_ => class.push_str(Self::BG),
|
|
||||||
}
|
|
||||||
class.push_str(suffix);
|
|
||||||
return class;
|
|
||||||
}
|
|
||||||
String::new()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -352,22 +329,8 @@ impl ColorText {
|
||||||
/// assert_eq!(ColorText::Default.to_class(), "");
|
/// assert_eq!(ColorText::Default.to_class(), "");
|
||||||
/// ```
|
/// ```
|
||||||
pub fn to_class(self) -> String {
|
pub fn to_class(self) -> String {
|
||||||
if let Some(suffix) = self.suffix() {
|
let mut class = String::new();
|
||||||
let base_len = match self {
|
self.push_class(&mut class);
|
||||||
Self::Theme(c) | Self::Emphasis(c) => Self::TEXT_PREFIX.len() + c.as_str().len(),
|
class
|
||||||
_ => Self::TEXT.len(),
|
|
||||||
};
|
|
||||||
let mut class = String::with_capacity(base_len + suffix.len());
|
|
||||||
match self {
|
|
||||||
Self::Theme(c) | Self::Emphasis(c) => {
|
|
||||||
class.push_str(Self::TEXT_PREFIX);
|
|
||||||
class.push_str(c.as_str());
|
|
||||||
}
|
|
||||||
_ => class.push_str(Self::TEXT),
|
|
||||||
}
|
|
||||||
class.push_str(suffix);
|
|
||||||
return class;
|
|
||||||
}
|
|
||||||
String::new()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -79,18 +79,6 @@ impl Margin {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Añade la clase de **margin** a la cadena de clases (reservado).
|
|
||||||
///
|
|
||||||
/// No añade nada si `size` es `ScaleSize::None`.
|
|
||||||
#[inline]
|
|
||||||
pub(crate) fn push_class(self, classes: &mut String) {
|
|
||||||
let Some(size) = self.size_suffix() else {
|
|
||||||
return;
|
|
||||||
};
|
|
||||||
self.breakpoint
|
|
||||||
.push_class(classes, self.side_prefix(), size);
|
|
||||||
} */
|
|
||||||
|
|
||||||
/// Devuelve la clase de **margin** como cadena (`"mt-3"`, `"ms-lg-auto"`, etc.).
|
/// Devuelve la clase de **margin** como cadena (`"mt-3"`, `"ms-lg-auto"`, etc.).
|
||||||
///
|
///
|
||||||
/// Si `size` es `ScaleSize::None`, devuelve `""`.
|
/// Si `size` es `ScaleSize::None`, devuelve `""`.
|
||||||
|
|
@ -180,17 +168,6 @@ impl Padding {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Añade la clase de **padding** a la cadena de clases (reservado).
|
|
||||||
///
|
|
||||||
/// No añade nada si `size` es `ScaleSize::None` o `ScaleSize::Auto`.
|
|
||||||
#[inline]
|
|
||||||
pub(crate) fn push_class(self, classes: &mut String) {
|
|
||||||
let Some(size) = self.suffix() else {
|
|
||||||
return;
|
|
||||||
};
|
|
||||||
self.breakpoint.push_class(classes, self.prefix(), size);
|
|
||||||
} */
|
|
||||||
|
|
||||||
/// Devuelve la clase de **padding** como cadena (`"px-2"`, `"pe-sm-4"`, etc.).
|
/// Devuelve la clase de **padding** como cadena (`"px-2"`, `"pe-sm-4"`, etc.).
|
||||||
///
|
///
|
||||||
/// Si `size` es `ScaleSize::None` o `ScaleSize::Auto`, devuelve `""`.
|
/// Si `size` es `ScaleSize::None` o `ScaleSize::Auto`, devuelve `""`.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue