diff --git a/CHANGELOG.md b/CHANGELOG.md
index 819c2b6..28fa3e7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,7 +3,7 @@
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-## [Unreleased] -
+## [0.7.0] - 2023-09-30
### New Functions 🚀
@@ -29,12 +29,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
a `web_sys::MutationObserverInit`.
- `use_websocket`:
- takes now a `&str` instead of a `String` as its `url` parameter.
+ - same for the returned `send` method.
- The `ready_state` return type is now renamed to `ConnectionReadyState` instead of `UseWebSocketReadyState`.
- The returned signals `ready_state`, `message`, `message_bytes` have now the type
`Signal<...>` instead of `ReadSignal<...>` to make them more consistent with other functions.
- The options `reconnect_limit` and `reconnect_interval` now take a `u64` instead of `Option` to improve DX.
- The option `manual` has been renamed to `immediate` to make it more consistent with other functions.
To port please note that `immediate` is the inverse of `manual` (`immediate` = `!manual`).
+ - Added documentation how pass it ergonomically as context.
- `use_color_mode`:
- The optional `on_changed` handler parameters have changed slightly. Please refer to the docs for more details.
- Throttled or debounced functions cannot be `FnOnce` anymore.
@@ -45,8 +47,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `use_websocket` can use relative urls now
- Callbacks in options don't require to be cloneable anymore
- Callback in `use_raf_fn` doesn't require to be cloneable anymore
-- All (!) functions can now be safely called on the server. Specifically this includes the following that
-- panicked on the server:
+- All (!) functions can now be safely called on the server. Specifically this includes the following that before
+ panicked on the server:
- `use_scroll`
- `use_event_listener`
- `use_element_hover`
diff --git a/Cargo.toml b/Cargo.toml
index 2b5b433..444bf29 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "leptos-use"
-version = "0.7.0-rc"
+version = "0.7.0"
edition = "2021"
authors = ["Marc-Stefan Cassola"]
categories = ["gui", "web-programming"]
@@ -13,7 +13,7 @@ repository = "https://github.com/Synphonyte/leptos-use"
homepage = "https://leptos-use.rs"
[dependencies]
-leptos = "0.5.0-rc2"
+leptos = "0.5"
wasm-bindgen = "0.2"
js-sys = "0.3"
default-struct-builder = "0.5"
diff --git a/README.md b/README.md
index 16b0401..bbfed70 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@
-
+
@@ -82,7 +82,8 @@ python3 post_build.py use_storage
### New Function Template
-To scaffold a new function quickly you can run `template/createfn.sh`. It requires that [`ffizer`](https://ffizer.github.io/) is installed.
+To scaffold a new function quickly you can run `template/createfn.sh`. It requires that [`ffizer`](https://ffizer.github.io/) and Python 3 is installed.
+This will create the function file in the src directory, scaffold an example directory and an entry in the book.
## Leptos compatibility
@@ -90,4 +91,4 @@ To scaffold a new function quickly you can run `template/createfn.sh`. It requir
|---------------|---------------------------|
| <= 0.3 | 0.3 |
| 0.4, 0.5, 0.6 | 0.4 |
-| main | 0.5.0-alpha/beta/rc |
+| 0.7 | 0.5 |
diff --git a/docs/add_version_to_docs.py b/docs/add_version_to_docs.py
index 60f5b0d..68a28da 100644
--- a/docs/add_version_to_docs.py
+++ b/docs/add_version_to_docs.py
@@ -64,7 +64,7 @@ def add_to_compat_table(leptos_version: str, crate_version: str, original_text:
if table_row is None:
lines.append(f"| {crate_version} | {leptos_version} |")
- elif re.search(rf"^\| .*? {crate_version}\s*\| {leptos_version}", table_row) is not None:
+ elif re.search(rf"^\| (.* )?{crate_version}\s*\| {leptos_version}", table_row) is not None:
return original_text
else:
index = table_row.index("|", 1)
diff --git a/docs/book/src/introduction.md b/docs/book/src/introduction.md
index 2f0b81e..5824f3a 100644
--- a/docs/book/src/introduction.md
+++ b/docs/book/src/introduction.md
@@ -12,6 +12,6 @@
-
+
\ No newline at end of file
diff --git a/examples/on_click_outside/Cargo.toml b/examples/on_click_outside/Cargo.toml
index 7aa80ab..76f570c 100644
--- a/examples/on_click_outside/Cargo.toml
+++ b/examples/on_click_outside/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-leptos = { version = "0.5.0-rc2", features = ["nightly", "csr"] }
+leptos = { version = "0.5", features = ["nightly", "csr"] }
console_error_panic_hook = "0.1"
console_log = "1"
log = "0.4"
diff --git a/examples/signal_debounced/Cargo.toml b/examples/signal_debounced/Cargo.toml
index e55d823..a14e69e 100644
--- a/examples/signal_debounced/Cargo.toml
+++ b/examples/signal_debounced/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-leptos = { version = "0.5.0-rc2", features = ["nightly", "csr"] }
+leptos = { version = "0.5", features = ["nightly", "csr"] }
console_error_panic_hook = "0.1"
console_log = "1"
log = "0.4"
diff --git a/examples/signal_throttled/Cargo.toml b/examples/signal_throttled/Cargo.toml
index 0cf5bae..78525ed 100644
--- a/examples/signal_throttled/Cargo.toml
+++ b/examples/signal_throttled/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-leptos = { version = "0.5.0-rc2", features = ["nightly", "csr"] }
+leptos = { version = "0.5", features = ["nightly", "csr"] }
console_error_panic_hook = "0.1"
console_log = "1"
log = "0.4"
diff --git a/examples/ssr/Cargo.toml b/examples/ssr/Cargo.toml
index 5dc2404..7b30d87 100644
--- a/examples/ssr/Cargo.toml
+++ b/examples/ssr/Cargo.toml
@@ -11,10 +11,10 @@ axum = { version = "0.6.4", optional = true }
console_error_panic_hook = "0.1"
console_log = "1"
cfg-if = "1"
-leptos = { version = "0.5.0-rc2", features = ["nightly"] }
-leptos_axum = { version = "0.5.0-rc2", optional = true }
-leptos_meta = { version = "0.5.0-rc2", features = ["nightly"] }
-leptos_router = { version = "0.5.0-rc2", features = ["nightly"] }
+leptos = { version = "0.5", features = ["nightly"] }
+leptos_axum = { version = "0.5", optional = true }
+leptos_meta = { version = "0.5", features = ["nightly"] }
+leptos_router = { version = "0.5", features = ["nightly"] }
leptos-use = { path = "../..", features = ["storage"] }
log = "0.4"
simple_logger = "4"
diff --git a/examples/ssr/src/app.rs b/examples/ssr/src/app.rs
index 29e62fc..91e95b8 100644
--- a/examples/ssr/src/app.rs
+++ b/examples/ssr/src/app.rs
@@ -64,10 +64,24 @@ fn HomePage() -> impl IntoView {
debounced_fn();
view! {
-
Leptos-Use SSR Example
-
-
Locale zh-Hans-CN-u-nu-hanidec: {zh_count}
-
Press any key: {key}
-
Debounced called: {debounce_value}
+
+ Leptos-Use SSR Example
+
+
+
+ Locale zh-Hans-CN-u-nu-hanidec:
+ {zh_count}
+
+
+ Press any key:
+ {key}
+
+
+ Debounced called:
+ {debounce_value}
+
}
}
diff --git a/examples/ssr/src/error_template.rs b/examples/ssr/src/error_template.rs
index 25179a3..83cbbe3 100644
--- a/examples/ssr/src/error_template.rs
+++ b/examples/ssr/src/error_template.rs
@@ -61,7 +61,7 @@ pub fn ErrorTemplate(
// a unique key for each item as a reference
key=|(index, _error)| *index
// renders each item to a view
- view=move |error| {
+ children=move |error| {
let error_string = error.1.to_string();
let error_code = error.1.status_code();
view! {
diff --git a/examples/use_abs/Cargo.toml b/examples/use_abs/Cargo.toml
index ca9275d..69755fa 100644
--- a/examples/use_abs/Cargo.toml
+++ b/examples/use_abs/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-leptos = { version = "0.5.0-rc2", features = ["nightly", "csr"] }
+leptos = { version = "0.5", features = ["nightly", "csr"] }
console_error_panic_hook = "0.1"
console_log = "1"
log = "0.4"
diff --git a/examples/use_active_element/Cargo.toml b/examples/use_active_element/Cargo.toml
index 09fa7ba..291f327 100644
--- a/examples/use_active_element/Cargo.toml
+++ b/examples/use_active_element/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-leptos = { version = "0.5.0-rc2", features = ["nightly", "csr"] }
+leptos = { version = "0.5", features = ["nightly", "csr"] }
console_error_panic_hook = "0.1"
console_log = "1"
log = "0.4"
diff --git a/examples/use_active_element/src/main.rs b/examples/use_active_element/src/main.rs
index 6c84ab2..e18fe28 100644
--- a/examples/use_active_element/src/main.rs
+++ b/examples/use_active_element/src/main.rs
@@ -22,10 +22,10 @@ fn Demo() -> impl IntoView {
}
- }
- />
+ let:i
+ >
+
+
diff --git a/examples/use_breakpoints/Cargo.toml b/examples/use_breakpoints/Cargo.toml
index ff943e3..99c6719 100644
--- a/examples/use_breakpoints/Cargo.toml
+++ b/examples/use_breakpoints/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-leptos = { version = "0.5.0-rc2", features = ["nightly", "csr"] }
+leptos = { version = "0.5", features = ["nightly", "csr"] }
console_error_panic_hook = "0.1"
console_log = "1"
log = "0.4"
diff --git a/examples/use_ceil/Cargo.toml b/examples/use_ceil/Cargo.toml
index c425802..059b96b 100644
--- a/examples/use_ceil/Cargo.toml
+++ b/examples/use_ceil/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-leptos = { version = "0.5.0-rc2", features = ["nightly", "csr"] }
+leptos = { version = "0.5", features = ["nightly", "csr"] }
console_error_panic_hook = "0.1"
console_log = "1"
log = "0.4"
diff --git a/examples/use_color_mode/Cargo.toml b/examples/use_color_mode/Cargo.toml
index 2ca3ec2..308c9c2 100644
--- a/examples/use_color_mode/Cargo.toml
+++ b/examples/use_color_mode/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-leptos = { version = "0.5.0-rc2", features = ["nightly", "csr"] }
+leptos = { version = "0.5", features = ["nightly", "csr"] }
console_error_panic_hook = "0.1"
console_log = "1"
log = "0.4"
diff --git a/examples/use_css_var/Cargo.toml b/examples/use_css_var/Cargo.toml
index 6b3b809..36dccaf 100644
--- a/examples/use_css_var/Cargo.toml
+++ b/examples/use_css_var/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-leptos = { version = "0.5.0-rc2", features = ["nightly", "csr"] }
+leptos = { version = "0.5", features = ["nightly", "csr"] }
console_error_panic_hook = "0.1"
console_log = "1"
log = "0.4"
diff --git a/examples/use_cycle_list/Cargo.toml b/examples/use_cycle_list/Cargo.toml
index a6d6fe8..2c954a7 100644
--- a/examples/use_cycle_list/Cargo.toml
+++ b/examples/use_cycle_list/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-leptos = { version = "0.5.0-rc2", features = ["nightly", "csr"] }
+leptos = { version = "0.5", features = ["nightly", "csr"] }
console_error_panic_hook = "0.1"
console_log = "1"
log = "0.4"
diff --git a/examples/use_debounce_fn/Cargo.toml b/examples/use_debounce_fn/Cargo.toml
index 450093a..8fd9049 100644
--- a/examples/use_debounce_fn/Cargo.toml
+++ b/examples/use_debounce_fn/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-leptos = { version = "0.5.0-rc2", features = ["nightly", "csr"] }
+leptos = { version = "0.5", features = ["nightly", "csr"] }
console_error_panic_hook = "0.1"
console_log = "1"
log = "0.4"
diff --git a/examples/use_document_visibility/Cargo.toml b/examples/use_document_visibility/Cargo.toml
index c8c2d63..61607d2 100644
--- a/examples/use_document_visibility/Cargo.toml
+++ b/examples/use_document_visibility/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-leptos = { version = "0.5.0-rc2", features = ["nightly", "csr"] }
+leptos = { version = "0.5", features = ["nightly", "csr"] }
console_error_panic_hook = "0.1"
console_log = "1"
log = "0.4"
diff --git a/examples/use_draggable/Cargo.toml b/examples/use_draggable/Cargo.toml
index 561c57e..c56104c 100644
--- a/examples/use_draggable/Cargo.toml
+++ b/examples/use_draggable/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-leptos = { version = "0.5.0-rc2", features = ["nightly", "csr"] }
+leptos = { version = "0.5", features = ["nightly", "csr"] }
console_error_panic_hook = "0.1"
console_log = "1"
log = "0.4"
diff --git a/examples/use_drop_zone/Cargo.toml b/examples/use_drop_zone/Cargo.toml
index 7d1e12b..461f924 100644
--- a/examples/use_drop_zone/Cargo.toml
+++ b/examples/use_drop_zone/Cargo.toml
@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
-leptos = { version = "0.5.0-rc2", features = ["nightly", "csr"] }
+leptos = { version = "0.5", features = ["nightly", "csr"] }
console_error_panic_hook = "0.1"
console_log = "1"
log = "0.4"
diff --git a/examples/use_drop_zone/src/main.rs b/examples/use_drop_zone/src/main.rs
index 67b8588..d70c460 100644
--- a/examples/use_drop_zone/src/main.rs
+++ b/examples/use_drop_zone/src/main.rs
@@ -42,29 +42,27 @@ fn Demo() -> impl IntoView {
-
///
/// }
/// # }
@@ -87,6 +87,106 @@ use web_sys::{BinaryType, CloseEvent, Event, MessageEvent, WebSocket};
/// | https://example.com/some/where | //otherdomain.com/api/ws | wss://otherdomain.com/api/ws |
///
///
+/// ## Usage with `provide_context`
+///
+/// The return value of `use_websocket` utilizes several type parameters which can make it
+/// cumbersome to use with `provide_context` + `expect_context`.
+/// The following example shows how to avoid type parameters with dynamic dispatch.
+/// This sacrifices a little bit of performance for the sake of ergonomics. However,
+/// compared to network transmission speeds this loss of performance is negligible.
+///
+/// First we define the `struct` that is going to be passed around as context.
+///
+/// ```
+/// # use leptos::*;
+/// use std::rc::Rc;
+///
+/// #[derive(Clone)]
+/// pub struct WebsocketContext {
+/// pub message: Signal