From 7ce476f2d763f2a5a3473566162ae157a7adffc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Iv=C3=A1n=20Vieitez=20Parra?= <3857362+corrideat@users.noreply.github.com> Date: Thu, 13 Feb 2025 23:35:43 +0200 Subject: [PATCH] Flow error (#2625) * Fix #2616. Wait until Chelonia is ready before logging in * Feedback * Fixes * Fix #2623 --- frontend/main.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/main.js b/frontend/main.js index 4c463084e..7e62b4cf5 100644 --- a/frontend/main.js +++ b/frontend/main.js @@ -358,7 +358,7 @@ async function startApp () { // Wait for SW to be ready console.debug('[app] Waiting for SW to be ready') return Promise.race([ - navigator.serviceWorker.ready, + navigator.serviceWorker?.ready, new Promise((resolve, reject) => setTimeout(() => reject(new Error('SW ready timeout')), 10000)) ]).catch(e => { console.error('[app] Service worker failed to become ready:', e) @@ -380,6 +380,8 @@ async function startApp () { removeHandler() await sbp('chelonia/contract/wait', identityContractID) }).then(() => { + // We know that `navigator.serviceWorker` is defined, since we've used + // it. This may need to be checked if a non-SW version is also supported. const sw = ((navigator.serviceWorker: any): ServiceWorkerContainer) const onready = () => { this.ephemeral.ready = true