From fdb8f055927402195d27b08899b0e29305c29d27 Mon Sep 17 00:00:00 2001 From: Prasanna Date: Wed, 7 Jul 2021 10:54:04 +0530 Subject: fixing a race condition where document body is null --- recipes/basecamp/webview.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'recipes/basecamp/webview.js') diff --git a/recipes/basecamp/webview.js b/recipes/basecamp/webview.js index 2158d0b..80cb8de 100644 --- a/recipes/basecamp/webview.js +++ b/recipes/basecamp/webview.js @@ -4,6 +4,13 @@ module.exports = (Franz, options) => { let updates = 0; const modal = document.createElement('div'); + const waitFor = (condition, callback) => { + if (!condition()) { + window.setTimeout(waitFor.bind(null, condition, callback), 100); + } else { + callback(); + } + }; function showModal (text) { show(modal); modal.querySelector('p').innerHTML = text; @@ -47,7 +54,7 @@ module.exports = (Franz, options) => { modal.id = 'franz-modal'; modal.innerHTML = ''; modal.querySelector('.close').addEventListener('click', hideModal); - document.body.appendChild(modal); + waitFor(() => document.body, () => document.body.appendChild(modal)); document.addEventListener('keydown', function(e) { if (e.keyCode === 27) { hideModal(); } }) -- cgit v1.2.3-54-g00ecf