From d45f7b908eac7be1d812e94152467c9b2cfbf0da Mon Sep 17 00:00:00 2001 From: luoxiao Date: Sat, 11 May 2024 17:47:33 +0800 Subject: [PATCH] feat: nav slot --- demo/src/pages/components.rs | 15 ++++++++++++--- thaw/src/nav/nav-drawer.css | 9 +++++++++ thaw/src/nav/nav_drawer.rs | 24 +++++++++++++++++++++++- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/demo/src/pages/components.rs b/demo/src/pages/components.rs index 3fd5523..b9571f1 100644 --- a/demo/src/pages/components.rs +++ b/demo/src/pages/components.rs @@ -58,13 +58,22 @@ pub fn ComponentsPage() -> impl IntoView { - +
{gen_menu_data().into_view()} - + +
diff --git a/thaw/src/nav/nav-drawer.css b/thaw/src/nav/nav-drawer.css index 1ff976f..f43564d 100644 --- a/thaw/src/nav/nav-drawer.css +++ b/thaw/src/nav/nav-drawer.css @@ -23,6 +23,15 @@ /* overflow: auto; */ } +.thaw-nav-drawer__footer { + width: 100%; + max-width: 100%; + padding: 0 var(--spacingVerticalMNudge); + box-sizing: border-box; + position: relative; + z-index: 2; +} + .thaw-nav-item { display: flex; text-transform: none; diff --git a/thaw/src/nav/nav_drawer.rs b/thaw/src/nav/nav_drawer.rs index 91b96b9..e82b06c 100644 --- a/thaw/src/nav/nav_drawer.rs +++ b/thaw/src/nav/nav_drawer.rs @@ -1,24 +1,46 @@ use leptos::*; +use thaw_components::OptionComp; use thaw_utils::{mount_style, Model}; +use crate::Scrollbar; #[component] pub fn NavDrawer( #[prop(optional, into)] selected_value: Model, children: Children, + #[prop(optional)] nav_drawer_header: Option, + #[prop(optional)] nav_drawer_footer: Option, ) -> impl IntoView { mount_style("nav-drawer", include_str!("./nav-drawer.css")); view! {
+ +
{(header.children)()}
+
- {children()} + + {children()} +
+ +
{(footer.children)()}
+
} } +#[slot] +pub struct NavDrawerHeader { + children: Children, +} + +#[slot] +pub struct NavDrawerFooter { + children: Children, +} + #[derive(Clone)] pub(crate) struct NavDrawerInjection(pub Model);