From 4262493f61a23a327352d1ead9b41d42874da5fc Mon Sep 17 00:00:00 2001 From: luoxiao Date: Wed, 10 Jul 2024 00:05:22 +0800 Subject: [PATCH] feat(lepots-v0.7): Binder --- demo/src/components/site_header.rs | 14 +-- demo/src/pages/home.rs | 5 +- thaw/src/auto_complete/mod.rs | 13 +- thaw_components/src/binder/mod.rs | 189 ++++++++++------------------- 4 files changed, 83 insertions(+), 138 deletions(-) diff --git a/demo/src/components/site_header.rs b/demo/src/components/site_header.rs index 1b285a7..ea39630 100644 --- a/demo/src/components/site_header.rs +++ b/demo/src/components/site_header.rs @@ -1,5 +1,5 @@ use super::switch_version::SwitchVersion; -use leptos::{prelude::*, ev}; +use leptos::{ev, prelude::*}; use leptos_meta::Style; use leptos_router::hooks::use_navigate; // use leptos_use::{storage::use_local_storage, utils::FromToStringCodec}; @@ -7,6 +7,7 @@ use thaw::*; #[component] pub fn SiteHeader() -> impl IntoView { + let navigate = use_navigate(); let theme = Theme::use_rw_theme(); let theme_name = Memo::new(move |_| { theme.with(|theme| { @@ -65,9 +66,11 @@ pub fn SiteHeader() -> impl IntoView { .collect() }) }); - let on_search_select = move |path: String| { - let navigate = use_navigate(); - navigate(&path, Default::default()); + let on_search_select = { + let navigate = navigate.clone(); + move |path: String| { + navigate(&path, Default::default()); + } }; let auto_complete_ref = ComponentRef::::new(); let handle = window_event_listener(ev::keydown, move |event| { @@ -132,7 +135,6 @@ pub fn SiteHeader() -> impl IntoView { @@ -274,5 +276,3 @@ fn gen_search_all_options() -> Vec { // menu_value // } - - diff --git a/demo/src/pages/home.rs b/demo/src/pages/home.rs index 7bba7e9..2954d4d 100644 --- a/demo/src/pages/home.rs +++ b/demo/src/pages/home.rs @@ -1,14 +1,14 @@ use leptos::prelude::*; use leptos_router::hooks::{use_navigate, use_query_map}; -// use leptos_router::{use_navigate, use_query_map}; use thaw::*; #[component] pub fn Home() -> impl IntoView { let query_map = use_query_map().get_untracked(); + let navigate = use_navigate(); + // mobile page if let Some(path) = query_map.get("path") { - let navigate = use_navigate(); navigate(&path, Default::default()); } view! { @@ -22,7 +22,6 @@ pub fn Home() -> impl IntoView {