diff --git a/packages/cookie-banner/src/client.ts b/packages/cookie-banner/src/client.ts index eb82642e6..5883aaf4d 100644 --- a/packages/cookie-banner/src/client.ts +++ b/packages/cookie-banner/src/client.ts @@ -107,12 +107,22 @@ export class CookieBannerClient { this.integrations = createDefaultIntegrations(); } + get loaded(): boolean { + return this.bannerConfig !== null; + } + async load(): Promise { const configUrl = new URL(`${this.bannerId}/config`, this.baseUrl); if (this.lang) { configUrl.searchParams.set("lang", this.lang); } - const config = await fetchJSON(configUrl); + + let config: BannerConfig; + try { + config = await fetchJSON(configUrl); + } catch { + return; + } this.bannerConfig = config; for (const integration of this.integrations) { diff --git a/packages/cookie-banner/src/components/cookie-banner-root.ts b/packages/cookie-banner/src/components/cookie-banner-root.ts index 973acca82..969bca862 100644 --- a/packages/cookie-banner/src/components/cookie-banner-root.ts +++ b/packages/cookie-banner/src/components/cookie-banner-root.ts @@ -147,6 +147,8 @@ export class ProboCookieBannerRoot extends ProboElement implements ProboRootElem // Element was disconnected while load() was in-flight. if (!this._client) return; + if (!this._client.loaded) return; + this._config = this._client.config; this._draft = this.buildDraft(this._config);