mirror of
https://github.com/adoyle0/leptos-use.git
synced 2025-01-23 09:09:21 -05:00
finished porting use_active_element
This commit is contained in:
parent
0bdc8e16c9
commit
39f3be4015
4 changed files with 11 additions and 10 deletions
|
@ -7,6 +7,7 @@ members = [
|
||||||
"signal_throttled",
|
"signal_throttled",
|
||||||
"sync_signal",
|
"sync_signal",
|
||||||
"use_abs",
|
"use_abs",
|
||||||
|
"use_active_element",
|
||||||
"use_and",
|
"use_and",
|
||||||
"use_breakpoints",
|
"use_breakpoints",
|
||||||
"use_broadcast_channel",
|
"use_broadcast_channel",
|
||||||
|
@ -68,7 +69,6 @@ members = [
|
||||||
"watch_debounced",
|
"watch_debounced",
|
||||||
"watch_pausable",
|
"watch_pausable",
|
||||||
"watch_throttled",
|
"watch_throttled",
|
||||||
# "use_active_element",
|
|
||||||
# "use_drop_zone",
|
# "use_drop_zone",
|
||||||
# "use_webtransport",
|
# "use_webtransport",
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
use leptos::prelude::*;
|
use leptos::prelude::*;
|
||||||
|
use leptos::wasm_bindgen::JsCast;
|
||||||
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;
|
||||||
|
|
||||||
|
@ -10,7 +11,10 @@ fn Demo() -> impl IntoView {
|
||||||
"{:?}",
|
"{:?}",
|
||||||
active_element
|
active_element
|
||||||
.get()
|
.get()
|
||||||
.map(|el| el.dataset().get("id"))
|
.map(|el| el
|
||||||
|
.unchecked_ref::<web_sys::HtmlElement>()
|
||||||
|
.dataset()
|
||||||
|
.get("id"))
|
||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
|
@ -35,7 +35,7 @@ mod signal_throttled;
|
||||||
#[cfg(feature = "sync_signal")]
|
#[cfg(feature = "sync_signal")]
|
||||||
mod sync_signal;
|
mod sync_signal;
|
||||||
#[cfg(feature = "use_active_element")]
|
#[cfg(feature = "use_active_element")]
|
||||||
// mod use_active_element;
|
mod use_active_element;
|
||||||
#[cfg(feature = "use_breakpoints")]
|
#[cfg(feature = "use_breakpoints")]
|
||||||
mod use_breakpoints;
|
mod use_breakpoints;
|
||||||
#[cfg(feature = "use_broadcast_channel")]
|
#[cfg(feature = "use_broadcast_channel")]
|
||||||
|
@ -183,7 +183,7 @@ pub use signal_throttled::*;
|
||||||
#[cfg(feature = "sync_signal")]
|
#[cfg(feature = "sync_signal")]
|
||||||
pub use sync_signal::*;
|
pub use sync_signal::*;
|
||||||
#[cfg(feature = "use_active_element")]
|
#[cfg(feature = "use_active_element")]
|
||||||
// pub use use_active_element::*;
|
pub use use_active_element::*;
|
||||||
#[cfg(feature = "use_breakpoints")]
|
#[cfg(feature = "use_breakpoints")]
|
||||||
pub use use_breakpoints::*;
|
pub use use_breakpoints::*;
|
||||||
#[cfg(feature = "use_broadcast_channel")]
|
#[cfg(feature = "use_broadcast_channel")]
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
use crate::{use_document, use_event_listener_with_options, use_window, UseEventListenerOptions};
|
use crate::{use_document, use_event_listener_with_options, use_window, UseEventListenerOptions};
|
||||||
use leptos::ev::{blur, focus};
|
use leptos::ev::{blur, focus};
|
||||||
use leptos::html::{AnyElement, ToHtmlElement};
|
|
||||||
use leptos::reactive::wrappers::read::Signal;
|
use leptos::reactive::wrappers::read::Signal;
|
||||||
use leptos::prelude::*;
|
use leptos::prelude::*;
|
||||||
|
|
||||||
|
@ -16,8 +15,7 @@ use leptos::prelude::*;
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use leptos::prelude::*;
|
/// # use leptos::prelude::*;
|
||||||
/// # use leptos::logging::log;
|
/// # use leptos_use::use_active_element;
|
||||||
/// use leptos_use::use_active_element;
|
|
||||||
/// #
|
/// #
|
||||||
/// # #[component]
|
/// # #[component]
|
||||||
/// # fn Demo() -> impl IntoView {
|
/// # fn Demo() -> impl IntoView {
|
||||||
|
@ -34,14 +32,13 @@ use leptos::prelude::*;
|
||||||
/// ## Server-Side Rendering
|
/// ## Server-Side Rendering
|
||||||
///
|
///
|
||||||
/// On the server this returns a `Signal` that always contains the value `None`.
|
/// On the server this returns a `Signal` that always contains the value `None`.
|
||||||
pub fn use_active_element() -> Signal<Option<HtmlElement<AnyElement>>> {
|
pub fn use_active_element() -> Signal<Option<web_sys::Element>, LocalStorage> {
|
||||||
let get_active_element = move || {
|
let get_active_element = move || {
|
||||||
use_document()
|
use_document()
|
||||||
.active_element()
|
.active_element()
|
||||||
.map(|el| el.to_leptos_element())
|
|
||||||
};
|
};
|
||||||
|
|
||||||
let (active_element, set_active_element) = signal(get_active_element());
|
let (active_element, set_active_element) = signal_local(get_active_element());
|
||||||
|
|
||||||
let listener_options = UseEventListenerOptions::default().capture(true);
|
let listener_options = UseEventListenerOptions::default().capture(true);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue