diff --git a/webroot/index.html b/webroot/index.html
index e4120b4cc..9e15e3b9c 100644
--- a/webroot/index.html
+++ b/webroot/index.html
@@ -21,6 +21,19 @@
GW TODO:
- off line/ video done mode.
- remove listeners on unload?
+- config customizations
+
+mobile yucks:
+problems;
+- mobile browsers need custom vh calculation due to browser chrome taken into consideration
+- mobile chrome softkeyboard changes perceived width of page, alters layout
+- chat windwo placementis messedup on orientation changes.. needs new vh.
+orientationchange oly happens on mobile.
+does orientationchange happen when keyboard appears?
+
+possible hacks
+- if mobile, don't show chat + chat icon in landscape?..
+
*/
diff --git a/webroot/js/app.js b/webroot/js/app.js
index 361f17a6c..d8070130f 100644
--- a/webroot/js/app.js
+++ b/webroot/js/app.js
@@ -27,7 +27,11 @@ function setupApp() {
// style hackings
window.VIDEOJS_NO_DYNAMIC_STYLE = true;
- mobileVHhack();
+ if (hasTouchScreen()) {
+ mobileVHhack();
+ window.onorientationchange = handleOrientationChange;
+ // document.addEventListener("orientationchange", handleOrientationChange);
+ }
// init messaging interactions
diff --git a/webroot/js/config.js b/webroot/js/config.js
index b48f6db67..1611bec3b 100644
--- a/webroot/js/config.js
+++ b/webroot/js/config.js
@@ -5,7 +5,7 @@ class Config {
}
async init() {
- const configFileLocation = "js/config.json";
+ const configFileLocation = "./js/config.json";
try {
const response = await fetch(configFileLocation);
diff --git a/webroot/js/message.js b/webroot/js/message.js
index 8cecfb804..78d426916 100644
--- a/webroot/js/message.js
+++ b/webroot/js/message.js
@@ -81,7 +81,7 @@ class Messaging {
this.inputChangeUserName.addEventListener("keydown", this.handleUsernameKeydown.bind(this));
this.formMessageInput.addEventListener("keydown", this.handleMessageInputKeydown.bind(this));
this.btnSubmitMessage.addEventListener("click", this.handleSubmitChatButton.bind(this));
- if (isAndroidMobile && window.screen.width < 860) {
+ if (isAndroidMobile && window.screen.width <= 860) {
this.formMessageInput.addEventListener("focus", this.handleKeyboardAppear.bind(this));
this.formMessageInput.addEventListener("blur", this.handleKeyboardOut.bind(this));
}
@@ -203,7 +203,9 @@ class Messaging {
id: uuidv4(),
});
const messageJSON = JSON.stringify(message);
- window.ws.send(messageJSON);
+ if (window && window.ws) {
+ window.ws.send(messageJSON);
+ }
// clear out things.
this.formMessageInput.value = "";
diff --git a/webroot/js/utils.js b/webroot/js/utils.js
index 2a1cbdb0a..ce9545bbc 100644
--- a/webroot/js/utils.js
+++ b/webroot/js/utils.js
@@ -46,7 +46,7 @@ function setVHvar() {
}
function mobileVHhack() {
setVHvar();
- window.addEventListener("orientationchange", setVHvar);
+ // window.addEventListener("orientationchange", setVHvar);
}
function isAndroidMobile() {
@@ -55,4 +55,33 @@ function isAndroidMobile() {
return isAndroid;
}
+// Trying to determine if browser is mobile/tablet.
+// Source: https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent
+function hasTouchScreen() {
+ var hasTouchScreen = false;
+ if ("maxTouchPoints" in navigator) {
+ hasTouchScreen = navigator.maxTouchPoints > 0;
+ } else if ("msMaxTouchPoints" in navigator) {
+ hasTouchScreen = navigator.msMaxTouchPoints > 0;
+ } else {
+ var mQ = window.matchMedia && matchMedia("(pointer:coarse)");
+ if (mQ && mQ.media === "(pointer:coarse)") {
+ hasTouchScreen = !!mQ.matches;
+ } else if ('orientation' in window) {
+ hasTouchScreen = true; // deprecated, but good fallback
+ } else {
+ // Only as a last resort, fall back to user agent sniffing
+ var UA = navigator.userAgent;
+ hasTouchScreen = (
+ /\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(UA) ||
+ /\b(Android|Windows Phone|iPad|iPod)\b/i.test(UA)
+ );
+ }
+ }
+ return hasTouchScreen;
+}
+function handleOrientationChange(event) {
+ console.log("====orientation change 123", event, window.screen.orientation, window.orientation)
+ setVHvar();
+}
diff --git a/webroot/styles/layout.css b/webroot/styles/layout.css
index 784737db1..02ddeadcb 100644
--- a/webroot/styles/layout.css
+++ b/webroot/styles/layout.css
@@ -4,6 +4,7 @@
--right-col-width: 24em;
--header-bg-color: rgba(20,0,40,1);
+ --vh: 1vh;
}
body {
@@ -170,9 +171,11 @@ header h1 {
padding: .5em 2em;
text-align: center;
font-size: .7em;
+ min-height: 3em; /*ios safari hack*/
flex-direction: row;
justify-content: space-between;
+
}
#user-content {
@@ -273,7 +276,10 @@ header h1 {
}
}
-@media screen and (max-width: 640px ) and (orientation: portrait) {
+/* ************************************************8 */
+
+
+@media screen and (max-width: 640px ) {
#main-content-container {
flex-direction: column;
justify-content: space-between;