Fix marquee behavior and unify marquee settings

This commit is contained in:
MOH
2026-03-10 05:23:27 +01:00
parent 701c1b2a6c
commit e219295327
6 changed files with 134 additions and 91 deletions
+16 -4
View File
@@ -97,26 +97,38 @@ function normalizeLocaleSettings(value: unknown, defaults: MarqueeLocaleSettings
};
}
export function syncMarqueeSettingsToGermanSource(settings: MarqueeSettings): MarqueeSettings {
const source = settings.locales.de;
return {
locales: {
de: { ...source },
en: { ...source },
ar: { ...source },
},
};
}
export function parseMarqueeSettingsValue(rawValue?: string | null): MarqueeSettings {
const defaults = buildDefaultMarqueeSettings();
if (!rawValue) {
return defaults;
return syncMarqueeSettingsToGermanSource(defaults);
}
try {
const parsed = JSON.parse(rawValue) as { locales?: Record<string, unknown> };
const locales = parsed && typeof parsed === "object" ? parsed.locales : undefined;
return {
return syncMarqueeSettingsToGermanSource({
locales: {
ar: normalizeLocaleSettings(locales?.ar, defaults.locales.ar),
en: normalizeLocaleSettings(locales?.en, defaults.locales.en),
de: normalizeLocaleSettings(locales?.de, defaults.locales.de),
},
};
});
} catch {
return defaults;
return syncMarqueeSettingsToGermanSource(defaults);
}
}