work to port to leptos 0.7

This commit is contained in:
Maccesch 2024-05-07 12:41:44 +01:00
parent 41c27c4d97
commit 5f3f60ca6b
175 changed files with 575 additions and 527 deletions

View file

@ -20,16 +20,16 @@ cfg-if = "1"
cookie = { version = "0.18", features = ["percent-encode"] } cookie = { version = "0.18", features = ["percent-encode"] }
default-struct-builder = "0.5" default-struct-builder = "0.5"
futures-util = "0.3" futures-util = "0.3"
gloo-timers = { version = "0.3.0", features = ["futures"] } gloo-timers = { version = "0.3", features = ["futures"] }
gloo-utils = { version = "0.2.0" } gloo-utils = { version = "0.2" }
http1 = { version = "1", optional = true, package = "http" } http1 = { version = "1", optional = true, package = "http" }
http0_2 = { version = "0.2", optional = true, package = "http" } http0_2 = { version = "0.2", optional = true, package = "http" }
js-sys = "0.3" js-sys = "0.3"
lazy_static = "1" lazy_static = "1"
leptos = "0.6" leptos = "0.7.0-preview2"
leptos_axum = { version = "0.6", optional = true } leptos_axum = { version = "0.7.0-preview2", optional = true }
leptos_actix = { version = "0.6", optional = true } leptos_actix = { version = "0.6", optional = true }
leptos-spin = { version = "0.1", optional = true } leptos-spin = { version = "0.2", optional = true }
num = { version = "0.4", optional = true } num = { version = "0.4", optional = true }
paste = "1" paste = "1"
prost = { version = "0.12", optional = true } prost = { version = "0.12", optional = true }
@ -133,7 +133,7 @@ features = [
[dev-dependencies] [dev-dependencies]
getrandom = { version = "0.2", features = ["js"] } getrandom = { version = "0.2", features = ["js"] }
leptos_meta = "0.6" leptos_meta = "0.7.0-preview2"
rand = "0.8" rand = "0.8"
[features] [features]

View file

@ -20,7 +20,6 @@
<br/> <br/>
<br/> <br/>
## Usage ## Usage
[![Docs](https://docs.rs/leptos-use/badge.svg)](https://docs.rs/leptos-use/) [![Docs](https://docs.rs/leptos-use/badge.svg)](https://docs.rs/leptos-use/)
@ -29,7 +28,7 @@
[![Discord](https://img.shields.io/discord/1031524867910148188?color=%237289DA&label=discord)](https://discord.com/channels/1031524867910148188/1121154537709895783) [![Discord](https://img.shields.io/discord/1031524867910148188?color=%237289DA&label=discord)](https://discord.com/channels/1031524867910148188/1121154537709895783)
```rust ```rust
use leptos::*; use leptos::prelude::*;
use leptos_use::{use_mouse, UseMouseReturn}; use leptos_use::{use_mouse, UseMouseReturn};
#[component] #[component]
@ -82,7 +81,8 @@ python3 post_build.py use_storage
### New Function Template ### New Function Template
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. 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. This will create the function file in the src directory, scaffold an example directory and an entry in the book.
## Leptos compatibility ## Leptos compatibility

View file

@ -35,14 +35,16 @@ pub fn some_directive(el: HtmlElement<AnyElement>) {
Signal of Strings: `Signal<String>`, `ReadSignal<String>`, `RwSignal<String>`, `Memo<String>`; also works with `&str`: Signal of Strings: `Signal<String>`, `ReadSignal<String>`, `RwSignal<String>`, `Memo<String>`; also works with `&str`:
```rust ```rust
let (str_signal, set_str_signal) = create_signal("div > p.some-class".to_string()); let (str_signal, set_str_signal) = signal("div > p.some-class".to_string());
use_element_size(str_signal); use_element_size(str_signal);
``` ```
Signals of Elements: `Signal<web_sys::Element>`, `ReadSignal<web_sys::Element>`, `RwSignal<web_sys::Element>`, `Memo<web_sys::Element>`; also works with `Option<web_sys::Element>`: Signals of
Elements: `Signal<web_sys::Element>`, `ReadSignal<web_sys::Element>`, `RwSignal<web_sys::Element>`, `Memo<web_sys::Element>`;
also works with `Option<web_sys::Element>`:
```rust ```rust
let (el_signal, set_el_signal) = create_signal(document().query_selector("div > p.some-class").unwrap()); let (el_signal, set_el_signal) = signal(document().query_selector("div > p.some-class").unwrap());
use_element_size(el_signal); use_element_size(el_signal);
``` ```
@ -61,7 +63,7 @@ types for `ElementMaybeSignal`.
Some functions work on one or more elements. Take [`use_resize_observer`](elements/use_resize_observer.md) for example. Some functions work on one or more elements. Take [`use_resize_observer`](elements/use_resize_observer.md) for example.
This works very much the same way as described above but instead of `Into<ElementMaybeSignal>` This works very much the same way as described above but instead of `Into<ElementMaybeSignal>`
it takes an `Into<ElementsMaybeSignal>` (note the plural). This means you can use it exactly in it takes an `Into<ElementsMaybeSignal>` (note the plural). This means you can use it exactly in
the same ways as you saw with the singular `ElementMaybeSignal`. Only this time, when you use the same ways as you saw with the singular `ElementMaybeSignal`. Only this time, when you use
`String` or `&str` it will be interpreted as CSS selector with `query_selector_all`. `String` or `&str` it will be interpreted as CSS selector with `query_selector_all`.
@ -83,7 +85,7 @@ use_resize_observer(vec![node_ref1, node_ref2].as_slice());
## Usage in Options ## Usage in Options
Some functions have options that take `Element(s)MaybeSignal`. Some functions have options that take `Element(s)MaybeSignal`.
They can be used in the same way. They can be used in the same way.
```rust ```rust

View file

@ -15,7 +15,7 @@ cargo add leptos-use
Simply import the functions you need from `leptos-use` Simply import the functions you need from `leptos-use`
```rust,noplayground ```rust,noplayground
use leptos::*; use leptos::prelude::*;
use leptos_use::{use_mouse, UseMouseReturn}; use leptos_use::{use_mouse, UseMouseReturn};
#[component] #[component]
@ -32,6 +32,6 @@ Please refer to the [functions list](functions.md) for more details.
## Stable Rust ## Stable Rust
Just like `leptos` this library can be safely run on stable rust. Just like `leptos` this library can be safely run on stable rust.
In the [Getting Started section](https://leptos-rs.github.io/leptos/02_getting_started.html) In the [Getting Started section](https://leptos-rs.github.io/leptos/02_getting_started.html)
of the `leptos` docs you can read more about what this means. of the `leptos` docs you can read more about what this means.

View file

@ -66,7 +66,7 @@ a new-type-wrapped `Option<web_sys::Window>` or `Option<web_sys::Document>` resp
used safely on the server. The following code works on both the client and the server: used safely on the server. The following code works on both the client and the server:
```rust ```rust
use leptos::*; use leptos::prelude::*;
use leptos::ev::keyup; use leptos::ev::keyup;
use leptos_use::{use_event_listener, use_window}; use leptos_use::{use_event_listener, use_window};

View file

@ -1,11 +1,11 @@
use leptos::html::Div; use leptos::html::Div;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::on_click_outside; use leptos_use::on_click_outside;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (show_modal, set_show_modal) = create_signal(false); let (show_modal, set_show_modal) = signal(false);
let modal_ref = create_node_ref::<Div>(); let modal_ref = create_node_ref::<Div>();
let _ = on_click_outside(modal_ref, move |_| set_show_modal.set(false)); let _ = on_click_outside(modal_ref, move |_| set_show_modal.set(false));

View file

@ -1,10 +1,10 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::signal_debounced; use leptos_use::signal_debounced;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (input, set_input) = create_signal("".to_string()); let (input, set_input) = signal("".to_string());
let debounced: Signal<String> = signal_debounced(input, 1000.0); let debounced: Signal<String> = signal_debounced(input, 1000.0);
view! { view! {

View file

@ -1,10 +1,10 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::signal_throttled; use leptos_use::signal_throttled;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (input, set_input) = create_signal("".to_string()); let (input, set_input) = signal("".to_string());
let throttled: Signal<String> = signal_throttled(input, 1000.0); let throttled: Signal<String> = signal_throttled(input, 1000.0);
view! { view! {

View file

@ -1,6 +1,6 @@
use crate::error_template::{AppError, ErrorTemplate}; use crate::error_template::{AppError, ErrorTemplate};
use leptos::ev::{keypress, KeyboardEvent}; use leptos::ev::{keypress, KeyboardEvent};
use leptos::*; use leptos::prelude::*;
use leptos_meta::*; use leptos_meta::*;
use leptos_router::*; use leptos_router::*;
use leptos_use::storage::use_local_storage; use leptos_use::storage::use_local_storage;
@ -49,14 +49,14 @@ fn HomePage() -> impl IntoView {
let zh_count = nf.format::<i32>(count); let zh_count = nf.format::<i32>(count);
let (key, set_key) = create_signal("".to_string()); let (key, set_key) = signal("".to_string());
// window() doesn't work on the server so we provide use_window() // window() doesn't work on the server so we provide use_window()
let _ = use_event_listener(use_window(), keypress, move |evt: KeyboardEvent| { let _ = use_event_listener(use_window(), keypress, move |evt: KeyboardEvent| {
set_key(evt.key()) set_key(evt.key())
}); });
let (debounce_value, set_debounce_value) = create_signal("not called"); let (debounce_value, set_debounce_value) = signal("not called");
let debounced_fn = use_debounce_fn( let debounced_fn = use_debounce_fn(
move || { move || {

View file

@ -1,6 +1,6 @@
use cfg_if::cfg_if; use cfg_if::cfg_if;
use http::status::StatusCode; use http::status::StatusCode;
use leptos::*; use leptos::prelude::*;
use thiserror::Error; use thiserror::Error;
#[cfg(feature = "ssr")] #[cfg(feature = "ssr")]

View file

@ -10,7 +10,7 @@ cfg_if! { if #[cfg(feature = "ssr")] {
use axum::response::Response as AxumResponse; use axum::response::Response as AxumResponse;
use tower::ServiceExt; use tower::ServiceExt;
use tower_http::services::ServeDir; use tower_http::services::ServeDir;
use leptos::*; use leptos::prelude::*;
use crate::app::App; use crate::app::App;
pub async fn file_and_error_handler(uri: Uri, State(options): State<LeptosOptions>, req: Request<Body>) -> AxumResponse { pub async fn file_and_error_handler(uri: Uri, State(options): State<LeptosOptions>, req: Request<Body>) -> AxumResponse {

View file

@ -4,7 +4,7 @@ pub mod error_template;
pub mod fileserv; pub mod fileserv;
cfg_if! { if #[cfg(feature = "hydrate")] { cfg_if! { if #[cfg(feature = "hydrate")] {
use leptos::*; use leptos::prelude::*;
use wasm_bindgen::prelude::wasm_bindgen; use wasm_bindgen::prelude::wasm_bindgen;
use crate::app::*; use crate::app::*;

View file

@ -3,7 +3,7 @@
async fn main() { async fn main() {
use axum::{routing::post, Router}; use axum::{routing::post, Router};
use leptos::logging::log; use leptos::logging::log;
use leptos::*; use leptos::prelude::*;
use leptos_axum::{generate_route_list, LeptosRoutes}; use leptos_axum::{generate_route_list, LeptosRoutes};
use leptos_use_ssr::app::*; use leptos_use_ssr::app::*;
use leptos_use_ssr::fileserv::file_and_error_handler; use leptos_use_ssr::fileserv::file_and_error_handler;

View file

@ -1,11 +1,11 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::sync_signal; use leptos_use::sync_signal;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (a, set_a) = create_signal(String::new()); let (a, set_a) = signal(String::new());
let (b, set_b) = create_signal(String::new()); let (b, set_b) = signal(String::new());
let _ = sync_signal((a, set_a), (b, set_b)); let _ = sync_signal((a, set_a), (b, set_b));

View file

@ -1,10 +1,10 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::math::use_abs; use leptos_use::math::use_abs;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (value, set_value) = create_signal(-32.25); let (value, set_value) = signal(-32.25);
let result: Signal<f64> = use_abs(value); let result: Signal<f64> = use_abs(value);

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::use_active_element; use leptos_use::use_active_element;

View file

@ -1,11 +1,11 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, BooleanDisplay}; use leptos_use::docs::{demo_or_body, BooleanDisplay};
use leptos_use::math::use_and; use leptos_use::math::use_and;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (a, set_a) = create_signal(false); let (a, set_a) = signal(false);
let (b, set_b) = create_signal(false); let (b, set_b) = signal(false);
let a_and_b = use_and(a, b); let a_and_b = use_and(a, b);

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, BooleanDisplay}; use leptos_use::docs::{demo_or_body, BooleanDisplay};
use leptos_use::{breakpoints_tailwind, use_breakpoints, BreakpointsTailwind}; use leptos_use::{breakpoints_tailwind, use_breakpoints, BreakpointsTailwind};

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::utils::FromToStringCodec; use leptos_use::utils::FromToStringCodec;
use leptos_use::{use_broadcast_channel, UseBroadcastChannelReturn}; use leptos_use::{use_broadcast_channel, UseBroadcastChannelReturn};
@ -13,7 +13,7 @@ fn Demo() -> impl IntoView {
.. ..
} = use_broadcast_channel::<String, FromToStringCodec>("leptos-use-demo-channel"); } = use_broadcast_channel::<String, FromToStringCodec>("leptos-use-demo-channel");
let (input_value, set_input_value) = create_signal(String::new()); let (input_value, set_input_value) = signal(String::new());
view! { view! {
<p>Please open this page in at least two tabs</p> <p>Please open this page in at least two tabs</p>

View file

@ -1,10 +1,10 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::math::use_ceil; use leptos_use::math::use_ceil;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (value, set_value) = create_signal(4.15); let (value, set_value) = signal(4.15);
let result: Signal<f64> = use_ceil(value); let result: Signal<f64> = use_ceil(value);

View file

@ -1,10 +1,10 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::{use_clipboard, use_permission, UseClipboardReturn}; use leptos_use::{use_clipboard, use_permission, UseClipboardReturn};
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (input, set_input) = create_signal("".to_owned()); let (input, set_input) = signal("".to_owned());
let UseClipboardReturn { let UseClipboardReturn {
is_supported, is_supported,

View file

@ -1,5 +1,5 @@
use leptos::html::html; use leptos::html::html;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::{ use leptos_use::{
use_color_mode_with_options, use_cycle_list_with_options, ColorMode, UseColorModeOptions, use_color_mode_with_options, use_cycle_list_with_options, ColorMode, UseColorModeOptions,

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::use_cookie; use leptos_use::use_cookie;
use leptos_use::utils::FromToStringCodec; use leptos_use::utils::FromToStringCodec;

View file

@ -1,5 +1,5 @@
use leptos::html::Div; use leptos::html::Div;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_css_var_with_options, UseCssVarOptions}; use leptos_use::{use_css_var_with_options, UseCssVarOptions};
@ -17,7 +17,7 @@ fn Demo() -> impl IntoView {
}; };
let elv = create_node_ref::<Div>(); let elv = create_node_ref::<Div>();
let (key, set_key) = create_signal("--color".to_string()); let (key, set_key) = signal("--color".to_string());
let (color_val, _) = use_css_var_with_options(key, UseCssVarOptions::default().target(elv)); let (color_val, _) = use_css_var_with_options(key, UseCssVarOptions::default().target(elv));
let change_var = move |_| { let change_var = move |_| {
if key.get() == "--color" { if key.get() == "--color" {

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_cycle_list, UseCycleListReturn}; use leptos_use::{use_cycle_list, UseCycleListReturn};

View file

@ -1,11 +1,11 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::{use_debounce_fn_with_options, DebounceOptions}; use leptos_use::{use_debounce_fn_with_options, DebounceOptions};
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (click_count, set_click_count) = create_signal(0); let (click_count, set_click_count) = signal(0);
let (debounced_count, set_debounced_count) = create_signal(0); let (debounced_count, set_debounced_count) = signal(0);
let debounced_fn = use_debounce_fn_with_options( let debounced_fn = use_debounce_fn_with_options(
move || set_debounced_count.set(debounced_count.get_untracked() + 1), move || set_debounced_count.set(debounced_count.get_untracked() + 1),

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::use_device_orientation; use leptos_use::use_device_orientation;
@ -7,22 +7,22 @@ fn Demo() -> impl IntoView {
let orientation = use_device_orientation(); let orientation = use_device_orientation();
view! { view! {
<pre> <pre>
{move || format!( {move || format!(
concat!( concat!(
"is_supported: {}\n", "is_supported: {}\n",
"absolute: {}\n", "absolute: {}\n",
"alpha: {:?}\n", "alpha: {:?}\n",
"beta: {:?}\n", "beta: {:?}\n",
"gamma: {:?}\n", "gamma: {:?}\n",
), ),
orientation.is_supported.get(), orientation.is_supported.get(),
orientation.absolute.get(), orientation.absolute.get(),
orientation.alpha.get(), orientation.alpha.get(),
orientation.beta.get(), orientation.beta.get(),
orientation.gamma.get(), orientation.gamma.get(),
)} )}
</pre> } </pre> }
} }
fn main() { fn main() {

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::use_device_pixel_ratio; use leptos_use::use_device_pixel_ratio;

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_display_media, UseDisplayMediaReturn}; use leptos_use::{use_display_media, UseDisplayMediaReturn};

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::use_document_visibility; use leptos_use::use_document_visibility;
use std::time::Duration; use std::time::Duration;
@ -6,7 +6,7 @@ use std::time::Duration;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let start_message = "💡 Minimize the page or switch tab then return"; let start_message = "💡 Minimize the page or switch tab then return";
let (message, set_message) = create_signal(start_message); let (message, set_message) = signal(start_message);
let visibility = use_document_visibility(); let visibility = use_document_visibility();
let _ = watch( let _ = watch(

View file

@ -1,5 +1,5 @@
use leptos::html::Div; use leptos::html::Div;
use leptos::*; use leptos::prelude::*;
use leptos_use::core::Position; use leptos_use::core::Position;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_draggable_with_options, use_window, UseDraggableOptions, UseDraggableReturn}; use leptos_use::{use_draggable_with_options, use_window, UseDraggableOptions, UseDraggableReturn};

View file

@ -1,11 +1,11 @@
use leptos::html::Div; use leptos::html::Div;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, BooleanDisplay}; use leptos_use::docs::{demo_or_body, BooleanDisplay};
use leptos_use::{use_drop_zone_with_options, UseDropZoneOptions, UseDropZoneReturn}; use leptos_use::{use_drop_zone_with_options, UseDropZoneOptions, UseDropZoneReturn};
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (dropped, set_dropped) = create_signal(false); let (dropped, set_dropped) = signal(false);
let drop_zone_el = create_node_ref::<Div>(); let drop_zone_el = create_node_ref::<Div>();

View file

@ -1,5 +1,5 @@
use leptos::html::Textarea; use leptos::html::Textarea;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::{use_element_bounding, UseElementBoundingReturn}; use leptos_use::{use_element_bounding, UseElementBoundingReturn};

View file

@ -1,5 +1,5 @@
use leptos::html::Button; use leptos::html::Button;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_element_hover_with_options, UseElementHoverOptions}; use leptos_use::{use_element_hover_with_options, UseElementHoverOptions};

View file

@ -1,5 +1,5 @@
use leptos::html::Textarea; use leptos::html::Textarea;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::{use_element_size, UseElementSizeReturn}; use leptos_use::{use_element_size, UseElementSizeReturn};

View file

@ -1,5 +1,5 @@
use leptos::html::Div; use leptos::html::Div;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, BooleanDisplay, Note}; use leptos_use::docs::{demo_or_body, BooleanDisplay, Note};
use leptos_use::use_element_visibility; use leptos_use::use_element_visibility;

View file

@ -1,7 +1,7 @@
use leptos::ev::{click, keydown}; use leptos::ev::{click, keydown};
use leptos::html::A; use leptos::html::A;
use leptos::logging::log; use leptos::logging::log;
use leptos::*; use leptos::prelude::*;
use leptos_use::{use_event_listener, use_window}; use leptos_use::{use_event_listener, use_window};
#[component] #[component]
@ -21,7 +21,7 @@ fn Demo() -> impl IntoView {
evt.prevent_default(); evt.prevent_default();
}); });
let (cond, set_cond) = create_signal(true); let (cond, set_cond) = signal(true);
view! { view! {
<p>"Check in the dev tools console"</p> <p>"Check in the dev tools console"</p>

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_favicon_with_options, UseFaviconOptions}; use leptos_use::{use_favicon_with_options, UseFaviconOptions};

View file

@ -1,10 +1,10 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::math::use_floor; use leptos_use::math::use_floor;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (value, set_value) = create_signal(5.95); let (value, set_value) = signal(5.95);
let result: Signal<f64> = use_floor(value); let result: Signal<f64> = use_floor(value);

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_geolocation, UseGeolocationReturn}; use leptos_use::{use_geolocation, UseGeolocationReturn};

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, BooleanDisplay, Note}; use leptos_use::docs::{demo_or_body, BooleanDisplay, Note};
use leptos_use::{use_idle, use_timestamp_with_options, UseIdleReturn, UseTimestampOptions}; use leptos_use::{use_idle, use_timestamp_with_options, UseIdleReturn, UseTimestampOptions};

View file

@ -1,5 +1,5 @@
use leptos::html::Div; use leptos::html::Div;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_infinite_scroll_with_options, UseInfiniteScrollOptions}; use leptos_use::{use_infinite_scroll_with_options, UseInfiniteScrollOptions};
@ -7,7 +7,7 @@ use leptos_use::{use_infinite_scroll_with_options, UseInfiniteScrollOptions};
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let el = create_node_ref::<Div>(); let el = create_node_ref::<Div>();
let (data, set_data) = create_signal(vec![1, 2, 3, 4, 5, 6]); let (data, set_data) = signal(vec![1, 2, 3, 4, 5, 6]);
let _ = use_infinite_scroll_with_options( let _ = use_infinite_scroll_with_options(
el, el,

View file

@ -1,5 +1,5 @@
use leptos::html::Div; use leptos::html::Div;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, BooleanDisplay}; use leptos_use::docs::{demo_or_body, BooleanDisplay};
use leptos_use::{ use leptos_use::{
use_intersection_observer_with_options, UseIntersectionObserverOptions, use_intersection_observer_with_options, UseIntersectionObserverOptions,
@ -10,7 +10,7 @@ use leptos_use::{
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let root = create_node_ref::<Div>(); let root = create_node_ref::<Div>();
let target = create_node_ref::<Div>(); let target = create_node_ref::<Div>();
let (is_visible, set_visible) = create_signal(false); let (is_visible, set_visible) = signal(false);
let UseIntersectionObserverReturn { let UseIntersectionObserverReturn {
is_active, is_active,

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_interval, UseIntervalReturn}; use leptos_use::{use_interval, UseIntervalReturn};

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::use_interval_fn; use leptos_use::use_interval_fn;
use leptos_use::utils::Pausable; use leptos_use::utils::Pausable;
@ -18,9 +18,9 @@ fn Demo() -> impl IntoView {
"Привет", "Привет",
]; ];
let (word, set_word) = create_signal(greetings[0]); let (word, set_word) = signal(greetings[0]);
let (interval, set_interval) = create_signal(500_u64); let (interval, set_interval) = signal(500_u64);
let (index, set_index) = create_signal(0); let (index, set_index) = signal(0);
let Pausable { let Pausable {
pause, pause,

View file

@ -1,10 +1,10 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_intl_number_format, NumberStyle, UseIntlNumberFormatOptions}; use leptos_use::{use_intl_number_format, NumberStyle, UseIntlNumberFormatOptions};
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (number, set_number) = create_signal(123456.78); let (number, set_number) = signal(123456.78);
let de_nf = use_intl_number_format( let de_nf = use_intl_number_format(
UseIntlNumberFormatOptions::default() UseIntlNumberFormatOptions::default()

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, BooleanDisplay}; use leptos_use::docs::{demo_or_body, BooleanDisplay};
use leptos_use::use_media_query; use leptos_use::use_media_query;

View file

@ -1,5 +1,5 @@
use leptos::html::Div; use leptos::html::Div;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::{ use leptos_use::{
use_mouse, use_mouse_with_options, UseMouseCoordType, UseMouseEventExtractor, UseMouseOptions, use_mouse, use_mouse_with_options, UseMouseCoordType, UseMouseEventExtractor, UseMouseOptions,

View file

@ -1,5 +1,5 @@
use leptos::html::Div; use leptos::html::Div;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_mouse_in_element, UseMouseInElementReturn}; use leptos_use::{use_mouse_in_element, UseMouseInElementReturn};

View file

@ -1,5 +1,5 @@
use leptos::html::Div; use leptos::html::Div;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_mutation_observer_with_options, UseMutationObserverOptions}; use leptos_use::{use_mutation_observer_with_options, UseMutationObserverOptions};
use std::time::Duration; use std::time::Duration;
@ -7,9 +7,9 @@ use std::time::Duration;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let el = create_node_ref::<Div>(); let el = create_node_ref::<Div>();
let (messages, set_messages) = create_signal(vec![]); let (messages, set_messages) = signal(vec![]);
let (class_name, set_class_name) = create_signal(String::new()); let (class_name, set_class_name) = signal(String::new());
let (style, set_style) = create_signal(String::new()); let (style, set_style) = signal(String::new());
use_mutation_observer_with_options( use_mutation_observer_with_options(
el, el,

View file

@ -1,10 +1,10 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, BooleanDisplay}; use leptos_use::docs::{demo_or_body, BooleanDisplay};
use leptos_use::math::use_not; use leptos_use::math::use_not;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (a, set_a) = create_signal(false); let (a, set_a) = signal(false);
let not_a = use_not(a); let not_a = use_not(a);
view! { view! {

View file

@ -1,11 +1,11 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, BooleanDisplay}; use leptos_use::docs::{demo_or_body, BooleanDisplay};
use leptos_use::math::use_or; use leptos_use::math::use_or;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (a, set_a) = create_signal(false); let (a, set_a) = signal(false);
let (b, set_b) = create_signal(false); let (b, set_b) = signal(false);
let a_or_b = use_or(a, b); let a_or_b = use_or(a, b);

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::use_permission; use leptos_use::use_permission;

View file

@ -1,10 +1,10 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_raf_fn, utils::Pausable}; use leptos_use::{use_raf_fn, utils::Pausable};
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (count, set_count) = create_signal(0); let (count, set_count) = signal(0);
let Pausable { let Pausable {
pause, pause,

View file

@ -1,12 +1,12 @@
use leptos::html::Textarea; use leptos::html::Textarea;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::use_resize_observer; use leptos_use::use_resize_observer;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let el = create_node_ref::<Textarea>(); let el = create_node_ref::<Textarea>();
let (text, set_text) = create_signal("".to_string()); let (text, set_text) = signal("".to_string());
use_resize_observer(el, move |entries, _| { use_resize_observer(el, move |entries, _| {
let rect = entries[0].content_rect(); let rect = entries[0].content_rect();

View file

@ -1,10 +1,10 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::math::use_round; use leptos_use::math::use_round;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (value, set_value) = create_signal(5.95); let (value, set_value) = signal(5.95);
let result: Signal<f64> = use_round(value); let result: Signal<f64> = use_round(value);

View file

@ -1,6 +1,6 @@
use leptos::html::Div; use leptos::html::Div;
use leptos::logging::log; use leptos::logging::log;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, BooleanDisplay}; use leptos_use::docs::{demo_or_body, BooleanDisplay};
use leptos_use::{use_scroll_with_options, ScrollBehavior, UseScrollOptions, UseScrollReturn}; use leptos_use::{use_scroll_with_options, ScrollBehavior, UseScrollOptions, UseScrollReturn};
@ -9,7 +9,7 @@ use web_sys::Event;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let el = create_node_ref::<Div>(); let el = create_node_ref::<Div>();
let (smooth, set_smooth) = create_signal(false); let (smooth, set_smooth) = signal(false);
let behavior = Signal::derive(move || { let behavior = Signal::derive(move || {
if smooth.get() { if smooth.get() {
ScrollBehavior::Smooth ScrollBehavior::Smooth

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, BooleanDisplay}; use leptos_use::docs::{demo_or_body, BooleanDisplay};
use leptos_use::{use_document, use_service_worker, UseServiceWorkerReturn}; use leptos_use::{use_document, use_service_worker, UseServiceWorkerReturn};
use web_sys::HtmlMetaElement; use web_sys::HtmlMetaElement;

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::use_sorted; use leptos_use::use_sorted;

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::storage::use_local_storage; use leptos_use::storage::use_local_storage;
use leptos_use::utils::JsonCodec; use leptos_use::utils::JsonCodec;

View file

@ -1,11 +1,11 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::use_throttle_fn; use leptos_use::use_throttle_fn;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (click_count, set_click_count) = create_signal(0); let (click_count, set_click_count) = signal(0);
let (throttled_count, set_throttled_count) = create_signal(0); let (throttled_count, set_throttled_count) = signal(0);
let throttled_fn = use_throttle_fn( let throttled_fn = use_throttle_fn(
move || set_throttled_count.set(throttled_count.get_untracked() + 1), move || set_throttled_count.set(throttled_count.get_untracked() + 1),

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_timeout_fn, UseTimeoutFnReturn}; use leptos_use::{use_timeout_fn, UseTimeoutFnReturn};
@ -6,7 +6,7 @@ use leptos_use::{use_timeout_fn, UseTimeoutFnReturn};
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
const DEFAULT_TEXT: &str = "Please wait for 3 seconds"; const DEFAULT_TEXT: &str = "Please wait for 3 seconds";
let (text, set_text) = create_signal(DEFAULT_TEXT.to_string()); let (text, set_text) = signal(DEFAULT_TEXT.to_string());
let UseTimeoutFnReturn { let UseTimeoutFnReturn {
start, is_pending, .. start, is_pending, ..
} = use_timeout_fn( } = use_timeout_fn(

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::use_timestamp; use leptos_use::use_timestamp;

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, BooleanDisplay}; use leptos_use::docs::{demo_or_body, BooleanDisplay};
use leptos_use::{ use leptos_use::{
use_web_notification_with_options, NotificationDirection, ShowOptions, use_web_notification_with_options, NotificationDirection, ShowOptions,

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{ use leptos_use::{
core::ConnectionReadyState, use_websocket, use_websocket_with_options, UseWebSocketOptions, core::ConnectionReadyState, use_websocket, use_websocket_with_options, UseWebSocketOptions,
@ -9,7 +9,7 @@ use web_sys::{CloseEvent, Event};
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (history, set_history) = create_signal(vec![]); let (history, set_history) = signal(vec![]);
fn update_history(&history: &WriteSignal<Vec<String>>, message: String) { fn update_history(&history: &WriteSignal<Vec<String>>, message: String) {
let _ = &history.update(|history: &mut Vec<_>| history.push(message)); let _ = &history.update(|history: &mut Vec<_>| history.push(message));
@ -68,7 +68,7 @@ fn Demo() -> impl IntoView {
// use_websocket_with_options // use_websocket_with_options
// ---------------------------- // ----------------------------
let (history2, set_history2) = create_signal(vec![]); let (history2, set_history2) = signal(vec![]);
let on_open_callback = move |e: Event| { let on_open_callback = move |e: Event| {
set_history2.update(|history: &mut Vec<_>| { set_history2.update(|history: &mut Vec<_>| {

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
#[component] #[component]
pub fn LogDisplay(#[prop(into)] log: Signal<Vec<String>>) -> impl IntoView { pub fn LogDisplay(#[prop(into)] log: Signal<Vec<String>>) -> impl IntoView {

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::core::ConnectionReadyState; use leptos_use::core::ConnectionReadyState;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_webtransport_with_options, UseWebTransportOptions}; use leptos_use::{use_webtransport_with_options, UseWebTransportOptions};
@ -13,7 +13,7 @@ use stream_send::*;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (datagrams_log, set_datagrams_log) = create_signal(vec![]); let (datagrams_log, set_datagrams_log) = signal(vec![]);
let id = store_value(0); let id = store_value(0);
@ -28,7 +28,7 @@ fn Demo() -> impl IntoView {
}), }),
); );
let (text, set_text) = create_signal("".to_string()); let (text, set_text) = signal("".to_string());
let on_send_datagrams = { let on_send_datagrams = {
let transport = transport.clone(); let transport = transport.clone();
@ -56,7 +56,7 @@ fn Demo() -> impl IntoView {
false, false,
); );
let (bidir_streams, set_bidir_streams) = create_signal(vec![]); let (bidir_streams, set_bidir_streams) = signal(vec![]);
let on_open_bidir_stream = { let on_open_bidir_stream = {
let transport = transport.clone(); let transport = transport.clone();

View file

@ -1,5 +1,5 @@
use crate::{LogDisplay, StreamSend}; use crate::{LogDisplay, StreamSend};
use leptos::*; use leptos::prelude::*;
use leptos_use::core::ConnectionReadyState; use leptos_use::core::ConnectionReadyState;
use leptos_use::BidirStream; use leptos_use::BidirStream;
@ -8,7 +8,7 @@ pub fn StreamBidir(
#[prop(into)] ready_state: Signal<ConnectionReadyState>, #[prop(into)] ready_state: Signal<ConnectionReadyState>,
stream: BidirStream, stream: BidirStream,
) -> impl IntoView { ) -> impl IntoView {
let (log, set_log) = create_signal(vec![]); let (log, set_log) = signal(vec![]);
let on_send = move |msg| { let on_send = move |msg| {
set_log.update(|log| log.push(format!("Sent: '{}'", msg))); set_log.update(|log| log.push(format!("Sent: '{}'", msg)));

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::core::ConnectionReadyState; use leptos_use::core::ConnectionReadyState;
use leptos_use::SendableStream; use leptos_use::SendableStream;
@ -12,7 +12,7 @@ where
S: SendableStream + 'static, S: SendableStream + 'static,
F: Fn(String) + 'static, F: Fn(String) + 'static,
{ {
let (text, set_text) = create_signal("".to_string()); let (text, set_text) = signal("".to_string());
let on_send = { let on_send = {
move |_| { move |_| {

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
#[component] #[component]
pub fn LogDisplay(#[prop(into)] log: Signal<Vec<String>>) -> impl IntoView { pub fn LogDisplay(#[prop(into)] log: Signal<Vec<String>>) -> impl IntoView {

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::core::ConnectionReadyState; use leptos_use::core::ConnectionReadyState;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::{use_webtransport_with_options, UseWebTransportOptions}; use leptos_use::{use_webtransport_with_options, UseWebTransportOptions};
@ -13,8 +13,8 @@ use stream_send::*;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (datagrams_log, set_datagrams_log) = create_signal(vec![]); let (datagrams_log, set_datagrams_log) = signal(vec![]);
let (bidir_streams, set_bidir_streams) = create_signal(vec![]); let (bidir_streams, set_bidir_streams) = signal(vec![]);
let id = store_value(0); let id = store_value(0);
@ -37,7 +37,7 @@ fn Demo() -> impl IntoView {
}), }),
); );
let (text, set_text) = create_signal("".to_string()); let (text, set_text) = signal("".to_string());
let on_send_datagrams = { let on_send_datagrams = {
let transport = transport.clone(); let transport = transport.clone();

View file

@ -1,5 +1,5 @@
use crate::{LogDisplay, StreamSend}; use crate::{LogDisplay, StreamSend};
use leptos::*; use leptos::prelude::*;
use leptos_use::core::ConnectionReadyState; use leptos_use::core::ConnectionReadyState;
use leptos_use::{BidirStream, CloseableStream, StreamState}; use leptos_use::{BidirStream, CloseableStream, StreamState};
@ -9,7 +9,7 @@ pub fn StreamBidir(
stream: BidirStream, stream: BidirStream,
opened_by: &'static str, opened_by: &'static str,
) -> impl IntoView { ) -> impl IntoView {
let (log, set_log) = create_signal(vec![]); let (log, set_log) = signal(vec![]);
let on_send = move |msg| { let on_send = move |msg| {
set_log.update(|log| log.push(format!("Sent: '{}'", msg))); set_log.update(|log| log.push(format!("Sent: '{}'", msg)));

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::core::ConnectionReadyState; use leptos_use::core::ConnectionReadyState;
use leptos_use::{SendableStream, StreamState}; use leptos_use::{SendableStream, StreamState};
@ -13,7 +13,7 @@ where
S: SendableStream + 'static, S: SendableStream + 'static,
F: Fn(String) + 'static, F: Fn(String) + 'static,
{ {
let (text, set_text) = create_signal("".to_string()); let (text, set_text) = signal("".to_string());
let on_send = { let on_send = {
move |_| { move |_| {

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::demo_or_body; use leptos_use::docs::demo_or_body;
use leptos_use::use_window_focus; use leptos_use::use_window_focus;
@ -6,7 +6,7 @@ use leptos_use::use_window_focus;
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let start_message = "💡 Click somewhere outside of the document to unfocus."; let start_message = "💡 Click somewhere outside of the document to unfocus.";
let (message, set_message) = create_signal(start_message); let (message, set_message) = signal(start_message);
let focused = use_window_focus(); let focused = use_window_focus();

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::use_window_scroll; use leptos_use::use_window_scroll;

View file

@ -1,11 +1,11 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::{watch_debounced_with_options, WatchDebouncedOptions}; use leptos_use::{watch_debounced_with_options, WatchDebouncedOptions};
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (input, set_input) = create_signal("".to_string()); let (input, set_input) = signal("".to_string());
let (updated, set_updated) = create_signal(0); let (updated, set_updated) = signal(0);
let _ = watch_debounced_with_options( let _ = watch_debounced_with_options(
move || input.get(), move || input.get(),

View file

@ -1,13 +1,13 @@
use leptos::html::Input; use leptos::html::Input;
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::{watch_pausable, WatchPausableReturn}; use leptos_use::{watch_pausable, WatchPausableReturn};
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let input = create_node_ref::<Input>(); let input = create_node_ref::<Input>();
let (log, set_log) = create_signal("".to_string()); let (log, set_log) = signal("".to_string());
let (source, set_source) = create_signal("".to_string()); let (source, set_source) = signal("".to_string());
let WatchPausableReturn { let WatchPausableReturn {
pause, pause,

View file

@ -1,11 +1,11 @@
use leptos::*; use leptos::prelude::*;
use leptos_use::docs::{demo_or_body, Note}; use leptos_use::docs::{demo_or_body, Note};
use leptos_use::watch_throttled; use leptos_use::watch_throttled;
#[component] #[component]
fn Demo() -> impl IntoView { fn Demo() -> impl IntoView {
let (input, set_input) = create_signal("".to_string()); let (input, set_input) = signal("".to_string());
let (updated, set_updated) = create_signal(0); let (updated, set_updated) = signal(0);
let _ = watch_throttled( let _ = watch_throttled(
move || input.get(), move || input.get(),

View file

@ -1,7 +1,8 @@
use crate::{UseDocument, UseWindow}; use crate::{UseDocument, UseWindow};
use cfg_if::cfg_if; use cfg_if::cfg_if;
use leptos::html::ElementDescriptor; use leptos::html::HtmlElement;
use leptos::*; use leptos::prelude::wrappers::read::Signal;
use leptos::prelude::*;
use std::marker::PhantomData; use std::marker::PhantomData;
use std::ops::Deref; use std::ops::Deref;

View file

@ -2,7 +2,8 @@ use crate::core::ElementMaybeSignal;
use crate::{UseDocument, UseWindow}; use crate::{UseDocument, UseWindow};
use cfg_if::cfg_if; use cfg_if::cfg_if;
use leptos::html::ElementDescriptor; use leptos::html::ElementDescriptor;
use leptos::*; use leptos::prelude::wrappers::read::Signal;
use leptos::prelude::*;
use std::marker::PhantomData; use std::marker::PhantomData;
use std::ops::Deref; use std::ops::Deref;

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
use std::fmt::Debug; use std::fmt::Debug;
pub enum MaybeRwSignal<T> pub enum MaybeRwSignal<T>
@ -91,7 +91,7 @@ impl<T: Clone> MaybeRwSignal<T> {
pub fn into_signal(self) -> (Signal<T>, WriteSignal<T>) { pub fn into_signal(self) -> (Signal<T>, WriteSignal<T>) {
match self { match self {
Self::DynamicRead(s) => { Self::DynamicRead(s) => {
let (r, w) = create_signal(s.get_untracked()); let (r, w) = signal(s.get_untracked());
create_effect(move |_| { create_effect(move |_| {
w.update(move |w| { w.update(move |w| {
@ -103,7 +103,7 @@ impl<T: Clone> MaybeRwSignal<T> {
} }
Self::DynamicRw(r, w) => (r, w), Self::DynamicRw(r, w) => (r, w),
Self::Static(v) => { Self::Static(v) => {
let (r, w) = create_signal(v.clone()); let (r, w) = signal(v.clone());
(Signal::from(r), w) (Signal::from(r), w)
} }
} }

View file

@ -1,4 +1,4 @@
use leptos::window; use leptos::prelude::*;
use wasm_bindgen::JsValue; use wasm_bindgen::JsValue;
/// Local or session storage or a custom store that is a `web_sys::Storage`. /// Local or session storage or a custom store that is a `web_sys::Storage`.

View file

@ -1,4 +1,4 @@
use leptos::window; use leptos::prelude::*;
#[cfg_attr(feature = "ssr", allow(dead_code))] #[cfg_attr(feature = "ssr", allow(dead_code))]
fn get() -> web_sys::Url { fn get() -> web_sys::Url {

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
pub enum UseRwSignal<T: 'static> { pub enum UseRwSignal<T: 'static> {
Separate(Signal<T>, WriteSignal<T>), Separate(Signal<T>, WriteSignal<T>),

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
#[component] #[component]
pub fn BooleanDisplay( pub fn BooleanDisplay(

View file

@ -1,4 +1,4 @@
use leptos::document; use leptos::prelude::*;
use wasm_bindgen::JsCast; use wasm_bindgen::JsCast;
pub fn demo_or_body() -> web_sys::HtmlElement { pub fn demo_or_body() -> web_sys::HtmlElement {

View file

@ -1,4 +1,4 @@
use leptos::*; use leptos::prelude::*;
#[component] #[component]
pub fn Note(#[prop(optional, into)] class: String, children: Children) -> impl IntoView { pub fn Note(#[prop(optional, into)] class: String, children: Children) -> impl IntoView {

View file

@ -1,5 +1,6 @@
use crate::utils::use_derive_signal; use crate::utils::use_derive_signal;
use leptos::*; use leptos::prelude::wrappers::read::Signal;
use leptos::prelude::*;
use_derive_signal!( use_derive_signal!(
/// Reactive `Result::is_err()`. /// Reactive `Result::is_err()`.
@ -7,12 +8,12 @@ use_derive_signal!(
/// ## Usage /// ## Usage
/// ///
/// ``` /// ```
/// # use leptos::*; /// # use leptos::prelude::*;
/// # use leptos_use::is_err; /// # use leptos_use::is_err;
/// # /// #
/// # #[component] /// # #[component]
/// # fn Demo() -> impl IntoView { /// # fn Demo() -> impl IntoView {
/// let (example, set_example) = create_signal( /// let (example, set_example) = signal(
/// if js_sys::Math::random() < 0.5 { Ok("Example") } else { Err(()) } /// if js_sys::Math::random() < 0.5 { Ok("Example") } else { Err(()) }
/// ); /// );
/// ///

View file

@ -1,5 +1,6 @@
use crate::utils::use_derive_signal; use crate::utils::use_derive_signal;
use leptos::*; use leptos::prelude::wrappers::read::Signal;
use leptos::prelude::*;
use_derive_signal!( use_derive_signal!(
/// Reactive `Option::is_none()`. /// Reactive `Option::is_none()`.
@ -7,12 +8,12 @@ use_derive_signal!(
/// ## Usage /// ## Usage
/// ///
/// ``` /// ```
/// # use leptos::*; /// # use leptos::prelude::*;
/// # use leptos_use::is_none; /// # use leptos_use::is_none;
/// # /// #
/// # #[component] /// # #[component]
/// # fn Demo() -> impl IntoView { /// # fn Demo() -> impl IntoView {
/// let (example, set_example) = create_signal( /// let (example, set_example) = signal(
/// if js_sys::Math::random() < 0.5 { Some("Example") } else { None } /// if js_sys::Math::random() < 0.5 { Some("Example") } else { None }
/// ); /// );
/// ///

View file

@ -1,5 +1,5 @@
use crate::utils::use_derive_signal; use crate::utils::use_derive_signal;
use leptos::*; use leptos::prelude::*;
use_derive_signal!( use_derive_signal!(
/// Reactive `Result::is_ok()`. /// Reactive `Result::is_ok()`.
@ -7,12 +7,12 @@ use_derive_signal!(
/// ## Usage /// ## Usage
/// ///
/// ``` /// ```
/// # use leptos::*; /// # use leptos::prelude::*;
/// # use leptos_use::is_ok; /// # use leptos_use::is_ok;
/// # /// #
/// # #[component] /// # #[component]
/// # fn Demo() -> impl IntoView { /// # fn Demo() -> impl IntoView {
/// let (example, set_example) = create_signal( /// let (example, set_example) = signal(
/// if js_sys::Math::random() < 0.5 { Ok("Example") } else { Err(()) } /// if js_sys::Math::random() < 0.5 { Ok("Example") } else { Err(()) }
/// ); /// );
/// ///

View file

@ -1,5 +1,6 @@
use crate::utils::use_derive_signal; use crate::utils::use_derive_signal;
use leptos::*; use leptos::prelude::wrappers::read::Signal;
use leptos::prelude::*;
use_derive_signal!( use_derive_signal!(
/// Reactive `Option::is_some()`. /// Reactive `Option::is_some()`.
@ -7,12 +8,12 @@ use_derive_signal!(
/// ## Usage /// ## Usage
/// ///
/// ``` /// ```
/// # use leptos::*; /// # use leptos::prelude::*;
/// # use leptos_use::is_some; /// # use leptos_use::is_some;
/// # /// #
/// # #[component] /// # #[component]
/// # fn Demo() -> impl IntoView { /// # fn Demo() -> impl IntoView {
/// let (example, set_example) = create_signal( /// let (example, set_example) = signal(
/// if js_sys::Math::random() < 0.5 { Some("Example") } else { None } /// if js_sys::Math::random() < 0.5 { Some("Example") } else { None }
/// ); /// );
/// ///

View file

@ -1,5 +1,6 @@
use crate::math::shared::use_simple_math; use crate::math::shared::use_simple_math;
use leptos::*; use leptos::prelude::wrappers::read::Signal;
use leptos::prelude::*;
use num::Float; use num::Float;
use paste::paste; use paste::paste;
@ -13,12 +14,12 @@ use_simple_math!(
/// ## Usage /// ## Usage
/// ///
/// ``` /// ```
/// # use leptos::*; /// # use leptos::prelude::*;
/// # use leptos_use::math::use_abs; /// # use leptos_use::math::use_abs;
/// # /// #
/// # #[component] /// # #[component]
/// # fn Demo() -> impl IntoView { /// # fn Demo() -> impl IntoView {
/// let (value, set_value) = create_signal(-32.25); /// let (value, set_value) = signal(-32.25);
/// let result: Signal<f64> = use_abs(value); // 32.25 /// let result: Signal<f64> = use_abs(value); // 32.25
/// # /// #
/// # assert_eq!(result.get(), 32.25); /// # assert_eq!(result.get(), 32.25);

View file

@ -1,5 +1,6 @@
use crate::math::shared::use_binary_logic; use crate::math::shared::use_binary_logic;
use leptos::*; use leptos::prelude::wrappers::read::Signal;
use leptos::prelude::*;
use paste::paste; use paste::paste;
use_binary_logic!( use_binary_logic!(
@ -12,13 +13,13 @@ use_binary_logic!(
/// ## Usage /// ## Usage
/// ///
/// ``` /// ```
/// # use leptos::*; /// # use leptos::prelude::*;
/// # use leptos_use::math::use_and; /// # use leptos_use::math::use_and;
/// # /// #
/// # #[component] /// # #[component]
/// # fn Demo() -> impl IntoView { /// # fn Demo() -> impl IntoView {
/// let (a, set_a) = create_signal(true); /// let (a, set_a) = signal(true);
/// let (b, set_b) = create_signal(false); /// let (b, set_b) = signal(false);
/// ///
/// let a_and_b = use_and(a, b); /// let a_and_b = use_and(a, b);
/// # /// #

View file

@ -1,5 +1,6 @@
use crate::math::shared::use_simple_math; use crate::math::shared::use_simple_math;
use leptos::*; use leptos::prelude::wrappers::read::Signal;
use leptos::prelude::*;
use num::Float; use num::Float;
use paste::paste; use paste::paste;
@ -13,12 +14,12 @@ use_simple_math!(
/// ## Usage /// ## Usage
/// ///
/// ``` /// ```
/// # use leptos::*; /// # use leptos::prelude::*;
/// # use leptos_use::math::use_ceil; /// # use leptos_use::math::use_ceil;
/// # /// #
/// # #[component] /// # #[component]
/// # fn Demo() -> impl IntoView { /// # fn Demo() -> impl IntoView {
/// let (value, set_value) = create_signal(44.15); /// let (value, set_value) = signal(44.15);
/// let result: Signal<f64> = use_ceil(value); // 45 /// let result: Signal<f64> = use_ceil(value); // 45
/// # /// #
/// # assert_eq!(result.get(), 45.0); /// # assert_eq!(result.get(), 45.0);

View file

@ -1,5 +1,6 @@
use crate::math::shared::use_simple_math; use crate::math::shared::use_simple_math;
use leptos::*; use leptos::prelude::wrappers::read::Signal;
use leptos::prelude::*;
use num::Float; use num::Float;
use paste::paste; use paste::paste;
@ -13,12 +14,12 @@ use_simple_math!(
/// ## Usage /// ## Usage
/// ///
/// ``` /// ```
/// # use leptos::*; /// # use leptos::prelude::*;
/// # use leptos_use::math::use_floor; /// # use leptos_use::math::use_floor;
/// # /// #
/// # #[component] /// # #[component]
/// # fn Demo() -> impl IntoView { /// # fn Demo() -> impl IntoView {
/// let (value, set_value) = create_signal(45.95); /// let (value, set_value) = signal(45.95);
/// let result: Signal<f64> = use_floor(value); // 45 /// let result: Signal<f64> = use_floor(value); // 45
/// # /// #
/// # assert_eq!(result.get(), 45.0); /// # assert_eq!(result.get(), 45.0);

View file

@ -1,5 +1,6 @@
use crate::math::shared::use_partial_cmp; use crate::math::shared::use_partial_cmp;
use leptos::*; use leptos::prelude::wrappers::read::Signal;
use leptos::prelude::*;
use std::cmp::Ordering; use std::cmp::Ordering;
use_partial_cmp!( use_partial_cmp!(
@ -14,12 +15,12 @@ use_partial_cmp!(
/// ## Usage /// ## Usage
/// ///
/// ``` /// ```
/// # use leptos::*; /// # use leptos::prelude::*;
/// # use leptos_use::math::use_max; /// # use leptos_use::math::use_max;
/// # /// #
/// # #[component] /// # #[component]
/// # fn Demo() -> impl IntoView { /// # fn Demo() -> impl IntoView {
/// let (values, set_values) = create_signal(vec![1.0, 2.0, 3.0, f32::NAN, 4.0, 5.0]); /// let (values, set_values) = signal(vec![1.0, 2.0, 3.0, f32::NAN, 4.0, 5.0]);
/// let result = use_max::<Vec<f32>, _, _>(values); // Some(5.0) /// let result = use_max::<Vec<f32>, _, _>(values); // Some(5.0)
/// # /// #
/// # assert_eq!(result.get(), Some(5.0)); /// # assert_eq!(result.get(), Some(5.0));

View file

@ -1,5 +1,6 @@
use crate::math::shared::use_partial_cmp; use crate::math::shared::use_partial_cmp;
use leptos::*; use leptos::prelude::wrappers::read::Signal;
use leptos::prelude::*;
use std::cmp::Ordering; use std::cmp::Ordering;
use_partial_cmp!( use_partial_cmp!(
@ -14,12 +15,12 @@ use_partial_cmp!(
/// ## Usage /// ## Usage
/// ///
/// ``` /// ```
/// # use leptos::*; /// # use leptos::prelude::*;
/// # use leptos_use::math::use_min; /// # use leptos_use::math::use_min;
/// # /// #
/// # #[component] /// # #[component]
/// # fn Demo() -> impl IntoView { /// # fn Demo() -> impl IntoView {
/// let (values, set_values) = create_signal(vec![1.0, 2.0, 3.0, f32::NAN, 4.0, 5.0]); /// let (values, set_values) = signal(vec![1.0, 2.0, 3.0, f32::NAN, 4.0, 5.0]);
/// let result = use_min::<Vec<f32>, _, _>(values); // Some(1.0) /// let result = use_min::<Vec<f32>, _, _>(values); // Some(1.0)
/// # /// #
/// # assert_eq!(result.get(), Some(1.0)); /// # assert_eq!(result.get(), Some(1.0));

View file

@ -1,4 +1,5 @@
use leptos::*; use leptos::prelude::wrappers::read::Signal;
use leptos::prelude::*;
/// Reactive `NOT` condition. /// Reactive `NOT` condition.
/// ///
@ -9,12 +10,12 @@ use leptos::*;
/// ## Usage /// ## Usage
/// ///
/// ``` /// ```
/// # use leptos::*; /// # use leptos::prelude::*;
/// # use leptos_use::math::use_not; /// # use leptos_use::math::use_not;
/// # /// #
/// # #[component] /// # #[component]
/// # fn Demo() -> impl IntoView { /// # fn Demo() -> impl IntoView {
/// let (a, set_a) = create_signal(true); /// let (a, set_a) = signal(true);
/// ///
/// let not_a = use_not(a); /// let not_a = use_not(a);
/// # /// #

View file

@ -1,5 +1,6 @@
use crate::math::shared::use_binary_logic; use crate::math::shared::use_binary_logic;
use leptos::*; use leptos::prelude::wrappers::read::Signal;
use leptos::prelude::*;
use paste::paste; use paste::paste;
use_binary_logic!( use_binary_logic!(
@ -12,13 +13,13 @@ use_binary_logic!(
/// ## Usage /// ## Usage
/// ///
/// ``` /// ```
/// # use leptos::*; /// # use leptos::prelude::*;
/// # use leptos_use::math::use_or; /// # use leptos_use::math::use_or;
/// # /// #
/// # #[component] /// # #[component]
/// # fn Demo() -> impl IntoView { /// # fn Demo() -> impl IntoView {
/// let (a, set_a) = create_signal(true); /// let (a, set_a) = signal(true);
/// let (b, set_b) = create_signal(false); /// let (b, set_b) = signal(false);
/// ///
/// let a_or_b = use_or(a, b); /// let a_or_b = use_or(a, b);
/// # /// #

View file

@ -1,5 +1,6 @@
use crate::math::shared::use_simple_math; use crate::math::shared::use_simple_math;
use leptos::*; use leptos::prelude::wrappers::read::Signal;
use leptos::prelude::*;
use num::Float; use num::Float;
use paste::paste; use paste::paste;
@ -13,12 +14,12 @@ use_simple_math!(
/// ## Usage /// ## Usage
/// ///
/// ``` /// ```
/// # use leptos::*; /// # use leptos::prelude::*;
/// # use leptos_use::math::use_round; /// # use leptos_use::math::use_round;
/// # /// #
/// # #[component] /// # #[component]
/// # fn Demo() -> impl IntoView { /// # fn Demo() -> impl IntoView {
/// let (value, set_value) = create_signal(45.95); /// let (value, set_value) = signal(45.95);
/// let result: Signal<f64> = use_round(value); // 46 /// let result: Signal<f64> = use_round(value); // 46
/// # /// #
/// # assert_eq!(result.get(), 46.0); /// # assert_eq!(result.get(), 46.0);

Some files were not shown because too many files have changed in this diff Show more