]> git.seodisparate.com - EN605.607.81.SP22_ASDM_Project/commitdiff
Fix not "disconnecting" (hopefully on mobile too) sprint_05_day_5
authorStephen Seo <seo.disparate@gmail.com>
Fri, 8 Apr 2022 03:41:00 +0000 (12:41 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Fri, 8 Apr 2022 03:41:20 +0000 (12:41 +0900)
Sometimes the player would not disconnect from the Network Multiplayer
session on the back-end. Seems to work on PC browsers, not so well with
moblie browsers. This commit hopefully fixes this for mobile browsers.

front_end/Cargo.toml
front_end/src/yew_components.rs

index 0166b84b2200a62dce0416fd5211607a032855a8..a4094ca9e499d6f678978cc76936edf164653cf0 100644 (file)
@@ -9,7 +9,7 @@ edition = "2021"
 yew = "0.19"
 log = "0.4.6"
 wasm-logger = "0.2.0"
-web-sys = { version = "0.3.56", features = ["Window", "Document", "Element", "Request", "RequestInit", "Headers", "RequestMode", "Response", "ReadableStream"] }
+web-sys = { version = "0.3.56", features = ["Window", "Document", "Element", "Request", "RequestInit", "Headers", "RequestMode", "Response", "ReadableStream", "AddEventListenerOptions", "EventTarget"] }
 js-sys = "0.3.56"
 oorandom = "11.1.3"
 wasm-bindgen = { version = "0.2.79", features = ["serde-serialize"] }
index 03f6b674591e992b87fc65abe302505a6c5f0191..defc4126dd5c8c24ea1d68641eb58c47983f6d06 100644 (file)
@@ -29,7 +29,7 @@ use std::rc::Rc;
 
 use js_sys::{Function, Promise};
 use wasm_bindgen::JsCast;
-use web_sys::{Document, Response};
+use web_sys::{AddEventListenerOptions, Document, Response};
 
 use serde_json::Value as SerdeJSONValue;
 
@@ -1238,12 +1238,17 @@ impl Component for Wrapper {
                                     let binded_func =
                                         outer_function.bind1(&outer_function, &resolve);
                                     window
-                                        .add_event_listener_with_callback("pagehide", &binded_func)
+                                        .add_event_listener_with_callback_and_add_event_listener_options(
+                                            "pagehide",
+                                            &binded_func,
+                                            AddEventListenerOptions::new().capture(true).once(true)
+                                        )
                                         .expect("Should be able to set \"pagehide\" callback");
                                     window
-                                        .add_event_listener_with_callback(
+                                        .add_event_listener_with_callback_and_add_event_listener_options(
                                             "beforeunload",
                                             &binded_func,
+                                            AddEventListenerOptions::new().capture(true).once(true)
                                         )
                                         .expect("Should be able to set \"beforeunload\" callback");
                                 });