diff options
| author | RblSb <msrblsb@gmail.com> | 2025-01-22 15:13:11 +0300 |
|---|---|---|
| committer | RblSb <msrblsb@gmail.com> | 2025-01-22 15:13:11 +0300 |
| commit | a843ae530b07b92fc7341754b4722cdcb8dfb831 (patch) | |
| tree | c5217245ea33b7342c248844f82539ccc4e41ac8 /src/client/Utils.hx | |
| parent | 8f54fabd74b6964e3610d3fbbbfd26f29af6f482 (diff) | |
Redesign portrait view with player at top
Also improve autoscroll with column-reverse, so viewport resize / orientation change should not scroll chat to random places
Diffstat (limited to 'src/client/Utils.hx')
| -rw-r--r-- | src/client/Utils.hx | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/client/Utils.hx b/src/client/Utils.hx index a0e19f7..155292f 100644 --- a/src/client/Utils.hx +++ b/src/client/Utils.hx @@ -26,6 +26,16 @@ class Utils { || (~/^Mac/.match(navigator.platform) && navigator.maxTouchPoints > 4); } + public static var isMacSafari = _isMacSafari(); + + static function _isMacSafari():Bool { + final isMac = navigator.userAgent.contains("Macintosh"); + final isSafari = navigator.userAgent.contains("Safari") + && !navigator.userAgent.contains("Chrom") + && !navigator.userAgent.contains("Edg"); + return isMac && isSafari; + } + public static function isAndroid():Bool { final ua = navigator.userAgent.toLowerCase(); return ua.indexOf("android") > -1; @@ -66,8 +76,6 @@ class Utils { final el2:Dynamic = el; if (el.requestFullscreen != null) { el.requestFullscreen(); - } else if (el2.mozRequestFullScreen != null) { - el2.mozRequestFullScreen(); } else if (el2.webkitRequestFullscreen != null) { el2.webkitRequestFullscreen(untyped Element.ALLOW_KEYBOARD_INPUT); } else return false; @@ -77,7 +85,6 @@ class Utils { public static function cancelFullscreen(el:Element):Void { final doc:Dynamic = document; if (doc.cancelFullScreen != null) doc.cancelFullScreen(); - else if (doc.mozCancelFullScreen != null) doc.mozCancelFullScreen(); else if (doc.webkitCancelFullScreen != null) doc.webkitCancelFullScreen(); } @@ -159,4 +166,13 @@ class Utils { document.body.removeChild(a); URL.revokeObjectURL(url); } + + public static function createResizeObserver(callback:(entries:Array<Dynamic>) -> Void):Null<{ + observe:(el:Element) -> Void + }> { + return null; + final window = js.Browser.window; + final observer = (window : Dynamic).ResizeObserver ?? return null; + return js.Syntax.code("new ResizeObserver({0})", callback); + } } |
