From 911f90714de8dcc8f1b4039529dc41a6b625383d Mon Sep 17 00:00:00 2001 From: bat Date: Wed, 12 Apr 2023 01:58:40 +0000 Subject: [PATCH] Fix flicker of undefined --- components/file-group-page.js | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/components/file-group-page.js b/components/file-group-page.js index dab9dcf..d252d2f 100644 --- a/components/file-group-page.js +++ b/components/file-group-page.js @@ -57,6 +57,8 @@ export class FileGroupPage extends HTMLElement { super() this.attachShadow({mode: 'open'}) this.csp = "default-src 'self' 'unsafe-inline' 'unsafe-eval'" + this.viewLoaded = false + this.onceOnLoaded = undefined } connectedCallback() { @@ -136,7 +138,11 @@ export class FileGroupPage extends HTMLElement { frame.srcdoc = frameHtml } frame.addEventListener('load', () => { - this.displayView() + this.viewLoaded = true + if (this.onceOnLoaded) { + this.onceOnLoaded() + this.onceOnLoaded = undefined + } }) this.viewFrame = frame this.shadowRoot.append(frame) @@ -144,9 +150,17 @@ export class FileGroupPage extends HTMLElement { displayView(doc) { const msg = ['srcdoc', doc] - this.viewFrame.contentWindow.postMessage( - msg, '*' - ) + if (this.viewLoaded) { + this.viewFrame.contentWindow.postMessage( + msg, '*' + ) + } else { + this.onceOnLoaded = () => { + this.viewFrame.contentWindow.postMessage( + msg, '*' + ) + } + } } async displayEdit() {