From 13e8bd5085969fa8390a0554cc2a19efb174fb68 Mon Sep 17 00:00:00 2001 From: Eduard Kuzmenko Date: Sat, 27 Feb 2021 16:03:21 +0400 Subject: [PATCH] Fix wrong viewport height on login iOS --- src/pages/page.ts | 2 +- src/pages/pageIm.ts | 51 +++++++++++++++++++++++++-------------------- 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/src/pages/page.ts b/src/pages/page.ts index f98b1bd2..ddffd547 100644 --- a/src/pages/page.ts +++ b/src/pages/page.ts @@ -5,7 +5,7 @@ export default class Page { private installed = false; constructor(className: string, public isAuthPage: boolean, private onFirstMount?: (...args: any[]) => Promise | void, private onMount?: (...args: any[]) => void, public onShown?: () => void) { - this.pageEl = document.body.getElementsByClassName(className)[0] as HTMLDivElement; + this.pageEl = document.body.querySelector('.' + className) as HTMLDivElement; } public async mount(...args: any[]) { diff --git a/src/pages/pageIm.ts b/src/pages/pageIm.ts index fadd5ef2..04064849 100644 --- a/src/pages/pageIm.ts +++ b/src/pages/pageIm.ts @@ -1,5 +1,6 @@ //import {stackBlurImage} from '../lib/StackBlur'; //import appStateManager from "../lib/appManagers/appStateManager"; +import { blurActiveElement } from "../helpers/dom"; import appStateManager from "../lib/appManagers/appStateManager"; import Page from "./page"; @@ -13,28 +14,34 @@ let onFirstMount = () => { m.default.broadcast('im_mount'); }); - const promise = import('../lib/appManagers/appDialogsManager'); - promise.finally(async() => { - //alert('pageIm!'); - - //AudioContext && global.navigator && global.navigator.mediaDevices && global.navigator.mediaDevices.getUserMedia && global.WebAssembly; - - /* // @ts-ignore - var AudioContext = globalThis.AudioContext || globalThis.webkitAudioContext; - alert('AudioContext:' + typeof(AudioContext)); - // @ts-ignore - alert('global.navigator:' + typeof(navigator)); - alert('navigator.mediaDevices:' + typeof(navigator.mediaDevices)); - alert('navigator.mediaDevices.getUserMedia:' + typeof(navigator.mediaDevices?.getUserMedia)); - alert('global.WebAssembly:' + typeof(WebAssembly)); */ - - //(Array.from(document.getElementsByClassName('rp')) as HTMLElement[]).forEach(el => ripple(el)); - - const misc = await import("../components/buttonMenuToggle"); - Array.from(document.getElementsByClassName('btn-menu-toggle')).forEach((el) => { - misc.ButtonMenuToggleHandler(el as HTMLElement); + blurActiveElement(); + return new Promise((resolve) => { + window.requestAnimationFrame(() => { + const promise = import('../lib/appManagers/appDialogsManager'); + promise.finally(async() => { + //alert('pageIm!'); + resolve(); + + //AudioContext && global.navigator && global.navigator.mediaDevices && global.navigator.mediaDevices.getUserMedia && global.WebAssembly; + + /* // @ts-ignore + var AudioContext = globalThis.AudioContext || globalThis.webkitAudioContext; + alert('AudioContext:' + typeof(AudioContext)); + // @ts-ignore + alert('global.navigator:' + typeof(navigator)); + alert('navigator.mediaDevices:' + typeof(navigator.mediaDevices)); + alert('navigator.mediaDevices.getUserMedia:' + typeof(navigator.mediaDevices?.getUserMedia)); + alert('global.WebAssembly:' + typeof(WebAssembly)); */ + + //(Array.from(document.getElementsByClassName('rp')) as HTMLElement[]).forEach(el => ripple(el)); + + const misc = await import("../components/buttonMenuToggle"); + Array.from(document.getElementsByClassName('btn-menu-toggle')).forEach((el) => { + misc.ButtonMenuToggleHandler(el as HTMLElement); + }); + }); }); - }) + }); //let promise = /* Promise.resolve() */.then(() => {//import('../lib/services').then(services => { /* fetch('assets/img/camomile.jpg') @@ -65,8 +72,6 @@ let onFirstMount = () => { }; }); */ //}); - - return promise; }; const page = new Page('page-chats', false, onFirstMount);