Local color override when editable is false (#56)

This commit is contained in:
Neil Dwyer 2024-05-13 12:13:23 -07:00 committed by GitHub
parent b25f3bb16a
commit f037e51716
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -84,6 +84,7 @@ export const ConfigProvider = ({
}) => { }) => {
const appConfig = useAppConfig(); const appConfig = useAppConfig();
const router = useRouter(); const router = useRouter();
const [localColorOverride, setLocalColorOverride] = useState<string | null>(null);
const getSettingsFromUrl = useCallback(() => { const getSettingsFromUrl = useCallback(() => {
if(typeof window === 'undefined') { if(typeof window === 'undefined') {
@ -147,31 +148,36 @@ export const ConfigProvider = ({
const getConfig = useCallback(() => { const getConfig = useCallback(() => {
const appConfigFromSettings = appConfig; const appConfigFromSettings = appConfig;
if (appConfigFromSettings.settings.editable === false) { if (appConfigFromSettings.settings.editable === false) {
if (localColorOverride) {
appConfigFromSettings.settings.theme_color = localColorOverride;
}
return appConfigFromSettings; return appConfigFromSettings;
} }
const cookieSettigs = getSettingsFromCookies(); const cookieSettigs = getSettingsFromCookies();
const urlSettings = getSettingsFromUrl(); const urlSettings = getSettingsFromUrl();
if(!cookieSettigs) { if (!cookieSettigs) {
if(urlSettings) { if (urlSettings) {
setCookieSettings(urlSettings); setCookieSettings(urlSettings);
} }
} }
if(!urlSettings) { if (!urlSettings) {
if(cookieSettigs) { if (cookieSettigs) {
setUrlSettings(cookieSettigs); setUrlSettings(cookieSettigs);
} }
} }
const newCookieSettings = getSettingsFromCookies(); const newCookieSettings = getSettingsFromCookies();
if(!newCookieSettings) { if (!newCookieSettings) {
return appConfigFromSettings; return appConfigFromSettings;
} }
appConfigFromSettings.settings = newCookieSettings; appConfigFromSettings.settings = newCookieSettings;
return {...appConfigFromSettings}; return { ...appConfigFromSettings };
}, [ }, [
appConfig, appConfig,
getSettingsFromCookies, getSettingsFromCookies,
getSettingsFromUrl, getSettingsFromUrl,
localColorOverride,
setCookieSettings, setCookieSettings,
setUrlSettings, setUrlSettings,
]); ]);
@ -179,6 +185,7 @@ export const ConfigProvider = ({
const setUserSettings = useCallback((settings: UserSettings) => { const setUserSettings = useCallback((settings: UserSettings) => {
const appConfigFromSettings = appConfig; const appConfigFromSettings = appConfig;
if (appConfigFromSettings.settings.editable === false) { if (appConfigFromSettings.settings.editable === false) {
setLocalColorOverride(settings.theme_color);
return return
} }
setUrlSettings(settings); setUrlSettings(settings);