From f037e51716cded6430d3b52ea284d12a187b8ef3 Mon Sep 17 00:00:00 2001 From: Neil Dwyer Date: Mon, 13 May 2024 12:13:23 -0700 Subject: [PATCH] Local color override when editable is false (#56) --- src/hooks/useConfig.tsx | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/hooks/useConfig.tsx b/src/hooks/useConfig.tsx index ac50f1f..14b749f 100644 --- a/src/hooks/useConfig.tsx +++ b/src/hooks/useConfig.tsx @@ -84,6 +84,7 @@ export const ConfigProvider = ({ }) => { const appConfig = useAppConfig(); const router = useRouter(); + const [localColorOverride, setLocalColorOverride] = useState(null); const getSettingsFromUrl = useCallback(() => { if(typeof window === 'undefined') { @@ -147,31 +148,36 @@ export const ConfigProvider = ({ const getConfig = useCallback(() => { const appConfigFromSettings = appConfig; + if (appConfigFromSettings.settings.editable === false) { + if (localColorOverride) { + appConfigFromSettings.settings.theme_color = localColorOverride; + } return appConfigFromSettings; } const cookieSettigs = getSettingsFromCookies(); const urlSettings = getSettingsFromUrl(); - if(!cookieSettigs) { - if(urlSettings) { + if (!cookieSettigs) { + if (urlSettings) { setCookieSettings(urlSettings); } } - if(!urlSettings) { - if(cookieSettigs) { + if (!urlSettings) { + if (cookieSettigs) { setUrlSettings(cookieSettigs); } } const newCookieSettings = getSettingsFromCookies(); - if(!newCookieSettings) { + if (!newCookieSettings) { return appConfigFromSettings; } appConfigFromSettings.settings = newCookieSettings; - return {...appConfigFromSettings}; + return { ...appConfigFromSettings }; }, [ appConfig, getSettingsFromCookies, getSettingsFromUrl, + localColorOverride, setCookieSettings, setUrlSettings, ]); @@ -179,6 +185,7 @@ export const ConfigProvider = ({ const setUserSettings = useCallback((settings: UserSettings) => { const appConfigFromSettings = appConfig; if (appConfigFromSettings.settings.editable === false) { + setLocalColorOverride(settings.theme_color); return } setUrlSettings(settings);