From b9134fe03a5ab624c27e8edb9a8d26acbaba9e3b Mon Sep 17 00:00:00 2001 From: Simon Elvery Date: Wed, 2 Dec 2020 14:57:46 +1000 Subject: [PATCH] Add whenOdysseyLoaded promise --- src/index.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/index.ts b/src/index.ts index a2c131a..d698dce 100644 --- a/src/index.ts +++ b/src/index.ts @@ -57,6 +57,9 @@ declare global { [PresentationLayerCustomEvents.DA]: CustomEvent; [PresentationLayerCustomEvents.DI]: CustomEvent; } + interface Window { + __ODYSSEY__?: unknown; + } } // Shared constants & functions @@ -170,6 +173,13 @@ export const whenDOMReady: Promise = new Promise(resolve => })() ); +// Allow us to check for when Odyssey is loaded +export const whenOdysseyLoaded = new Promise(resolve => { + window.__ODYSSEY__ + ? resolve(window.__ODYSSEY__) + : window.addEventListener('odyssey:api', () => resolve(window.__ODYSSEY__)); +}); + // Listen for PL decoy deactivations and revoke previously granted DOM permits function bindGlobalRevocationHandler() { window.addEventListener(PresentationLayerCustomEvents.DI, ({ detail }) => {