diff --git a/src/app/components/ClientConfigLoader.tsx b/src/app/components/ClientConfigLoader.tsx index 73250751..5fe13c1c 100644 --- a/src/app/components/ClientConfigLoader.tsx +++ b/src/app/components/ClientConfigLoader.tsx @@ -4,26 +4,21 @@ import { ClientConfig } from '../hooks/useClientConfig'; import { trimTrailingSlash } from '../utils/common'; const getClientConfig = async (): Promise<ClientConfig> => { - let url = `${trimTrailingSlash(import.meta.env.BASE_URL)}/config.${window.location.hostname}.json`; - let config = await fetch(url, { method: 'GET' }); + const defaultConfig = fetch( + `${trimTrailingSlash(import.meta.env.BASE_URL)}/config.json`, { method: 'GET' } + ); + const perSiteConfig = fetch( + `${trimTrailingSlash(import.meta.env.BASE_URL)}/config.${window.location.hostname}.json`, { method: "GET" } + ); - let loadedConfig = null; - try { - if(config.ok && import.meta.env.MODE != "development") { - loadedConfig = await config.json(); + return perSiteConfig.then( + async (pscResponse) => { + if (import.meta.env.MODE === "development" || !pscResponse.ok) { + return defaultConfig.then((dcResponse) => dcResponse.json()); + } + return pscResponse.json(); } - } catch (e) {} - - if(!loadedConfig) { - url = `${trimTrailingSlash(import.meta.env.BASE_URL)}/config.json`; - config = await fetch(url, { method: 'GET' }); - try { - loadedConfig = await config.json(); - } catch (e) { - return {}; - } - } - return loadedConfig; + ) }; type ClientConfigLoaderProps = {