diff --git a/examples/counter/Cargo.toml b/examples/counter/Cargo.toml index 249eef9..3a3e31a 100644 --- a/examples/counter/Cargo.toml +++ b/examples/counter/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -leptos = { path = "../../leptos", features = ["csr"], version = "0.0.1" } +leptos = { path = "../../leptos", features = ["csr"], version = "0.0.4" } wee_alloc = "0.4" console_log = "0.2" log = "0.4" diff --git a/examples/counter/src/lib.rs b/examples/counter/src/lib.rs index 21a92fa..b853461 100644 --- a/examples/counter/src/lib.rs +++ b/examples/counter/src/lib.rs @@ -5,9 +5,10 @@ pub fn simple_counter(cx: Scope) -> web_sys::Element { view! {
- + + "Value: " {move || value().to_string()} "!" - +
} } diff --git a/examples/counters/Cargo.toml b/examples/counters/Cargo.toml index e6419a5..1a701d9 100644 --- a/examples/counters/Cargo.toml +++ b/examples/counters/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -leptos = { path = "../../leptos", features = ["csr"], version = "0.0.1" } +leptos = { path = "../../leptos", features = ["csr"], version = "0.0.4" } wee_alloc = "0.4" log = "0.4" console_log = "0.2" diff --git a/examples/counters/src/lib.rs b/examples/counters/src/lib.rs index 69f0857..6006b1b 100644 --- a/examples/counters/src/lib.rs +++ b/examples/counters/src/lib.rs @@ -17,8 +17,8 @@ pub fn Counters(cx: Scope) -> web_sys::Element { let add_counter = move |_| { let id = next_counter_id(); let sig = create_signal(cx, 0); - set_counters(move |counters| counters.push((id, sig))); - set_next_counter_id(|id| *id += 1); + set_counters.update(move |counters| counters.push((id, sig))); + set_next_counter_id.update(|id| *id += 1); }; let add_many_counters = move |_| { @@ -27,11 +27,11 @@ pub fn Counters(cx: Scope) -> web_sys::Element { let signal = create_signal(cx, 0); new_counters.push((next_id, signal)); } - set_counters(move |n| *n = new_counters.clone()); + set_counters(new_counters.clone()); }; let clear_counters = move |_| { - set_counters(|counters| counters.clear()); + set_counters.update(|counters| counters.clear()); }; view! { @@ -80,20 +80,18 @@ fn Counter( ) -> web_sys::Element { let CounterUpdater { set_counters } = use_context(cx).unwrap_throw(); - let input = move |ev| { - set_value(move |value| *value = event_target_value(&ev).parse::().unwrap_or_default()) - }; + let input = move |ev| set_value(event_target_value(&ev).parse::().unwrap_or_default()); view! {
  • - + {move || value().to_string()} - - + +
  • } } diff --git a/examples/fetch/Cargo.toml b/examples/fetch/Cargo.toml index 1f20bae..6988ddb 100644 --- a/examples/fetch/Cargo.toml +++ b/examples/fetch/Cargo.toml @@ -5,7 +5,7 @@ edition = "2021" [dependencies] anyhow = "1.0.58" -leptos = { path = "../../leptos", features = ["csr"], version = "0.0.1" } +leptos = { path = "../../leptos", features = ["csr"], version = "0.0.4" } reqwasm = "0.5.0" serde = { version = "1", features = ["derive"] } wee_alloc = "0.4" diff --git a/examples/fetch/src/lib.rs b/examples/fetch/src/lib.rs index 5978846..2ad8c9e 100644 --- a/examples/fetch/src/lib.rs +++ b/examples/fetch/src/lib.rs @@ -31,7 +31,7 @@ async fn fetch_cats(count: u32) -> Result, ()> { pub fn fetch_example(cx: Scope) -> web_sys::Element { let (cat_count, set_cat_count) = create_signal::(cx, 1); - let cats = create_resource(cx, cat_count, |count| fetch_cats(*count)); + let cats = create_resource(cx, cat_count, |count| fetch_cats(count)); view! {
    @@ -41,8 +41,7 @@ pub fn fetch_example(cx: Scope) -> web_sys::Element { value={move || cat_count.get().to_string()} on:input=move |ev| { let val = event_target_value(&ev).parse::().unwrap_or(0); - log!("set_cat_count {val}"); - set_cat_count(|n| *n = val); + set_cat_count(val); } /> diff --git a/examples/router/Cargo.toml b/examples/router/Cargo.toml index 20e5f21..41ccc34 100644 --- a/examples/router/Cargo.toml +++ b/examples/router/Cargo.toml @@ -6,7 +6,8 @@ edition = "2021" [dependencies] console_log = "0.2" log = "0.4" -leptos = { path = "../../leptos", features = ["csr"], version = "0.0.1" } +leptos = { path = "../../leptos", features = ["csr"], version = "0.0.4" } +leptos_router = { path = "../../router", features = ["csr"], version = "0.0.4" } wee_alloc = "0.4" futures = "0.3" diff --git a/examples/router/src/api.rs b/examples/router/src/api.rs index def4d77..facef2f 100644 --- a/examples/router/src/api.rs +++ b/examples/router/src/api.rs @@ -1,4 +1,5 @@ use std::time::Duration; +use leptos::{Serialize, Deserialize}; use futures::{ channel::oneshot::{self, Canceled}, @@ -6,14 +7,14 @@ use futures::{ }; use leptos::set_timeout; -#[derive(Debug, Clone, PartialEq, Eq)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct ContactSummary { pub id: usize, pub first_name: String, pub last_name: String, } -#[derive(Debug, Clone, PartialEq, Eq)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct Contact { pub id: usize, pub first_name: String, diff --git a/examples/router/src/lib.rs b/examples/router/src/lib.rs index e0a3e83..55a1cfd 100644 --- a/examples/router/src/lib.rs +++ b/examples/router/src/lib.rs @@ -8,6 +8,7 @@ use std::{ use api::{Contact, ContactSummary}; use futures::Future; use leptos::*; +use leptos_router::*; use crate::api::{get_contact, get_contacts}; @@ -102,7 +103,7 @@ pub fn Index(cx: Scope) -> Vec { #[component] pub fn ContactList(cx: Scope) -> Element { - let contacts = use_loader::>>(cx); + let contacts = use_loader::<(String, Vec)>(cx); log::debug!( "[ContactList] before , use_route(cx).path() is {:?}", @@ -142,12 +143,12 @@ pub fn Contact(cx: Scope) -> Element { view! {
    "Loading..."

    }>{ - move || contact.read().flatten().map(|contact| view! { + move || contact.read().map(|contact| contact.map(|contact| view! {

    {contact.first_name} " " {contact.last_name}

    {contact.address_1}
    {contact.address_2}

    - }) + })) }
    } diff --git a/examples/todomvc/Cargo.toml b/examples/todomvc/Cargo.toml index a1778df..f0547fc 100644 --- a/examples/todomvc/Cargo.toml +++ b/examples/todomvc/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -leptos = { path = "../../leptos", version = "0.0.1" } +leptos = { path = "../../leptos" } wee_alloc = "0.4" miniserde = "0.1" log = "0.4" diff --git a/examples/todomvc/src/lib.rs b/examples/todomvc/src/lib.rs index ebc3912..af4aa9f 100644 --- a/examples/todomvc/src/lib.rs +++ b/examples/todomvc/src/lib.rs @@ -57,14 +57,14 @@ impl Todos { if self.remaining() == 0 { for todo in &self.0 { if todo.completed.get() { - (todo.set_completed)(|completed| *completed = false); + (todo.set_completed)(false); } } } // otherwise, mark them all complete else { for todo in &self.0 { - (todo.set_completed)(|completed| *completed = true); + (todo.set_completed)(true); } } } @@ -101,7 +101,8 @@ impl Todo { } pub fn toggle(&self) { - (self.set_completed)(|completed| *completed = !*completed); + self.set_completed + .update(|completed| *completed = !*completed); } } @@ -124,7 +125,7 @@ pub fn TodoMVC(cx: Scope, todos: Todos) -> Element { let (mode, set_mode) = create_signal(cx, Mode::All); window_event_listener("hashchange", move |_| { let new_mode = location_hash().map(|hash| route(&hash)).unwrap_or_default(); - set_mode(|mode| *mode = new_mode); + set_mode(new_mode); }); let add_todo = move |ev: web_sys::Event| { @@ -240,9 +241,9 @@ pub fn Todo(cx: Scope, todo: Todo) -> Element { if value.is_empty() { set_todos.update(|t| t.remove(todo.id)); } else { - (todo.set_title)(move |n| *n = value.to_string()); + (todo.set_title)(value.to_string()); } - set_editing(|n| *n = false); + set_editing(false); }; let tpl = view! { @@ -259,10 +260,10 @@ pub fn Todo(cx: Scope, todo: Todo) -> Element { prop:checked={move || (todo.completed)()} on:input={move |ev| { let checked = event_target_checked(&ev); - (todo.set_completed)(|n| *n = checked); + (todo.set_completed)(checked); }} /> -