Silence warnings, run cargo fmt
This commit is contained in:
parent
fe1c1d3655
commit
af1c767f5f
77 changed files with 1904 additions and 903 deletions
|
|
@ -85,7 +85,7 @@ pub fn ContextMenu(
|
|||
// Click outside handler
|
||||
#[cfg(feature = "hydrate")]
|
||||
{
|
||||
use wasm_bindgen::{closure::Closure, JsCast};
|
||||
use wasm_bindgen::{JsCast, closure::Closure};
|
||||
|
||||
Effect::new(move |_| {
|
||||
if !open.get() {
|
||||
|
|
@ -100,28 +100,35 @@ pub fn ContextMenu(
|
|||
let menu_el: web_sys::HtmlElement = menu_el.into();
|
||||
let menu_el_clone = menu_el.clone();
|
||||
|
||||
let handler = Closure::<dyn Fn(web_sys::MouseEvent)>::new(move |ev: web_sys::MouseEvent| {
|
||||
if let Some(target) = ev.target() {
|
||||
if let Ok(target_el) = target.dyn_into::<web_sys::Node>() {
|
||||
if !menu_el_clone.contains(Some(&target_el)) {
|
||||
on_close.run(());
|
||||
let handler =
|
||||
Closure::<dyn Fn(web_sys::MouseEvent)>::new(move |ev: web_sys::MouseEvent| {
|
||||
if let Some(target) = ev.target() {
|
||||
if let Ok(target_el) = target.dyn_into::<web_sys::Node>() {
|
||||
if !menu_el_clone.contains(Some(&target_el)) {
|
||||
on_close.run(());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
let window = web_sys::window().unwrap();
|
||||
let _ = window.add_event_listener_with_callback("mousedown", handler.as_ref().unchecked_ref());
|
||||
let _ = window
|
||||
.add_event_listener_with_callback("mousedown", handler.as_ref().unchecked_ref());
|
||||
|
||||
// Escape key handler
|
||||
let on_close_esc = on_close.clone();
|
||||
let keydown_handler = Closure::<dyn Fn(web_sys::KeyboardEvent)>::new(move |ev: web_sys::KeyboardEvent| {
|
||||
if ev.key() == "Escape" {
|
||||
on_close_esc.run(());
|
||||
ev.prevent_default();
|
||||
}
|
||||
});
|
||||
let _ = window.add_event_listener_with_callback("keydown", keydown_handler.as_ref().unchecked_ref());
|
||||
let keydown_handler = Closure::<dyn Fn(web_sys::KeyboardEvent)>::new(
|
||||
move |ev: web_sys::KeyboardEvent| {
|
||||
if ev.key() == "Escape" {
|
||||
on_close_esc.run(());
|
||||
ev.prevent_default();
|
||||
}
|
||||
},
|
||||
);
|
||||
let _ = window.add_event_listener_with_callback(
|
||||
"keydown",
|
||||
keydown_handler.as_ref().unchecked_ref(),
|
||||
);
|
||||
|
||||
// Store handlers to clean up (they get cleaned up when Effect reruns)
|
||||
handler.forget();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue