♻️ (bootsier): Refactoriza la gestión de clases
- Mejora la legibilidad del código. - Simplifica las alteraciones de clases en los componentes `Container`, `Dropdown`, `Image`, `Nav`, `Navbar` y `Offcanvas` usando métodos dedicados para generar clases en función de sus propiedades. - Mejora los enums añadiendo métodos que devuelven sus clases asociadas, reduciendo código repetitivo. - Elimina el trait `JoinClasses` y su implementación, integrando la lógica de unión de clases directamente en los componentes.
This commit is contained in:
parent
748bd81bf1
commit
2e39af0856
33 changed files with 1607 additions and 647 deletions
|
|
@ -23,7 +23,7 @@ enum Source {
|
|||
///
|
||||
/// Permite especificar en qué contexto se aplica el CSS, adaptándose a diferentes dispositivos o
|
||||
/// situaciones de impresión.
|
||||
#[derive(AutoDefault)]
|
||||
#[derive(AutoDefault, Clone, Copy, Debug, PartialEq)]
|
||||
pub enum TargetMedia {
|
||||
/// Se aplica en todos los casos (el atributo `media` se omite).
|
||||
#[default]
|
||||
|
|
@ -39,7 +39,7 @@ pub enum TargetMedia {
|
|||
/// Devuelve el valor para el atributo `media` (`Some(...)`) o `None` para `Default`.
|
||||
#[rustfmt::skip]
|
||||
impl TargetMedia {
|
||||
fn as_str_opt(&self) -> Option<&str> {
|
||||
const fn as_str(self) -> Option<&'static str> {
|
||||
match self {
|
||||
TargetMedia::Default => None,
|
||||
TargetMedia::Print => Some("print"),
|
||||
|
|
@ -171,7 +171,7 @@ impl Asset for StyleSheet {
|
|||
link
|
||||
rel="stylesheet"
|
||||
href=(join_pair!(path, "?v=", &self.version))
|
||||
media=[self.media.as_str_opt()];
|
||||
media=[self.media.as_str()];
|
||||
},
|
||||
Source::Inline(_, f) => html! {
|
||||
style { (PreEscaped((f)(cx))) };
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue