From 5ab09bb2815f81c785b88ee39b1f2635512c4679 Mon Sep 17 00:00:00 2001 From: luoxiaozero <48741584+luoxiaozero@users.noreply.github.com> Date: Sat, 23 Dec 2023 12:25:54 +0800 Subject: [PATCH] Pref/class (#58) * feat: add class_list macro * fix: ssr mode class_list * pref: replace with class_list --- src/alert/mod.rs | 12 +- src/auto_complete/mod.rs | 8 +- src/avatar/mod.rs | 12 +- src/badge/mod.rs | 20 +--- src/breadcrumb/breadcrumb_item.rs | 13 +-- src/breadcrumb/mod.rs | 9 +- src/button/mod.rs | 23 ++-- src/calendar/mod.rs | 16 +-- src/card/mod.rs | 7 +- src/checkbox/mod.rs | 14 +-- src/color_picker/mod.rs | 15 +-- src/divider/mod.rs | 8 +- src/grid/grid_item.rs | 9 +- src/grid/mod.rs | 7 +- src/image/mod.rs | 8 +- src/input/mod.rs | 17 ++- src/menu/menu_group.rs | 13 +-- src/menu/menu_item.rs | 16 ++- src/menu/mod.rs | 9 +- src/mobile/nav_bar/mod.rs | 12 +- src/popover/mod.rs | 10 +- src/radio/mod.rs | 13 +-- src/select/mod.rs | 9 +- src/slider/mod.rs | 9 +- src/space/mod.rs | 9 +- src/spinner/mod.rs | 10 +- src/switch/mod.rs | 14 +-- src/table/mod.rs | 16 ++- src/tabs/mod.rs | 18 +-- src/tabs/tab.rs | 17 +-- src/tag/mod.rs | 8 +- src/typography/text.rs | 15 +-- src/utils/class_list.rs | 186 ++++++++++++++++++++++++++++++ src/utils/dyn_classes.rs | 35 ------ src/utils/mod.rs | 3 +- 35 files changed, 316 insertions(+), 304 deletions(-) create mode 100644 src/utils/class_list.rs delete mode 100644 src/utils/dyn_classes.rs diff --git a/src/alert/mod.rs b/src/alert/mod.rs index de5cacc..5ba585f 100644 --- a/src/alert/mod.rs +++ b/src/alert/mod.rs @@ -1,10 +1,8 @@ mod theme; -#[cfg(not(feature = "ssr"))] -use crate::utils::dyn_classes; use crate::{ theme::use_theme, - utils::{mount_style, ssr_class}, + utils::{class_list::class_list, mount_style}, Icon, Theme, }; use icondata::AiIcon; @@ -86,14 +84,8 @@ pub fn Alert( .into() }); - let ssr_class = ssr_class(&class); view! { -
+
diff --git a/src/auto_complete/mod.rs b/src/auto_complete/mod.rs index 27dec76..69b9fd9 100644 --- a/src/auto_complete/mod.rs +++ b/src/auto_complete/mod.rs @@ -1,10 +1,9 @@ mod theme; -use crate::utils::{dyn_classes, ssr_class}; use crate::{ components::{Binder, Follower, FollowerPlacement, FollowerWidth}, use_theme, - utils::{mount_style, StoredMaybeSignal}, + utils::{class_list::class_list, mount_style, StoredMaybeSignal}, ComponentRef, Input, InputPrefix, InputRef, InputSuffix, Theme, }; use leptos::*; @@ -126,13 +125,10 @@ pub fn AutoComplete( comp_ref.load(AutoCompleteRef { input_ref }); }); - let ssr_class = ssr_class(&class); view! {
diff --git a/src/avatar/mod.rs b/src/avatar/mod.rs index 1c58b48..1d3f19d 100644 --- a/src/avatar/mod.rs +++ b/src/avatar/mod.rs @@ -1,10 +1,8 @@ mod theme; -#[cfg(not(feature = "ssr"))] -use crate::utils::dyn_classes; use crate::{ use_theme, - utils::{mount_style, ssr_class}, + utils::{class_list::class_list, mount_style}, Theme, }; use leptos::*; @@ -35,14 +33,8 @@ pub fn Avatar( }); mount_style("avatar", include_str!("./avatar.css")); - let ssr_class = ssr_class(&class); view! { - + {move || { let src = src.get(); (!src.is_empty()).then(|| view! { }) diff --git a/src/badge/mod.rs b/src/badge/mod.rs index 1874956..b9e1391 100644 --- a/src/badge/mod.rs +++ b/src/badge/mod.rs @@ -1,9 +1,6 @@ -#[cfg(not(feature = "ssr"))] -use crate::utils::dyn_classes; - use crate::{ theme::use_theme, - utils::{mount_style, ssr_class}, + utils::{class_list::class_list, mount_style}, Theme, }; use leptos::*; @@ -59,18 +56,13 @@ pub fn Badge( value.to_string() } }); - let ssr_class = ssr_class(&class); + view! {
-
- {move || value.get()} -
+
{move || value.get()}
{children()}
} diff --git a/src/breadcrumb/breadcrumb_item.rs b/src/breadcrumb/breadcrumb_item.rs index d71c1f5..f3d16f0 100644 --- a/src/breadcrumb/breadcrumb_item.rs +++ b/src/breadcrumb/breadcrumb_item.rs @@ -1,22 +1,19 @@ use super::use_breadcrumb_separator; +use crate::utils::class_list::class_list; use leptos::*; -#[cfg(not(feature = "ssr"))] -use crate::utils::dyn_classes; -use crate::utils::ssr_class; - #[component] pub fn BreadcrumbItem( #[prop(optional, into)] class: MaybeSignal, children: Children, ) -> impl IntoView { let breadcrumb_separator = use_breadcrumb_separator(); - let ssr_class = ssr_class(&class); + view! {
  • - - {children()} - + {children()} {move || breadcrumb_separator.0.get()} diff --git a/src/breadcrumb/mod.rs b/src/breadcrumb/mod.rs index ef7e5ee..e576700 100644 --- a/src/breadcrumb/mod.rs +++ b/src/breadcrumb/mod.rs @@ -1,10 +1,9 @@ mod breadcrumb_item; mod theme; -use crate::utils::dyn_classes; use crate::{ use_theme, - utils::{mount_style, ssr_class}, + utils::{class_list::class_list, mount_style}, Theme, }; pub use breadcrumb_item::BreadcrumbItem; @@ -37,13 +36,11 @@ pub fn Breadcrumb( }); css_vars }); - let ssr_class = ssr_class(&class); + view! {