pub fn window_event_listener<E>(
    event: E,
    cb: impl Fn(<E as EventDescriptor>::EventType) + 'static
) -> WindowListenerHandlewhere
    E: EventDescriptor + 'static,
    <E as EventDescriptor>::EventType: JsCast,
Expand description

Creates a window event listener from a typed event, returning a cancelable handle.

use leptos::{leptos_dom::helpers::window_event_listener, *};

#[component]
fn App() -> impl IntoView {
    let handle = window_event_listener(ev::keypress, |ev| {
        // ev is typed as KeyboardEvent automatically,
        // so .code() can be called
        let code = ev.code();
        log!("code = {code:?}");
    });
    on_cleanup(move || handle.remove());
}