From ced5dc19204c0f67f290a770dfda87f4795f8b61 Mon Sep 17 00:00:00 2001 From: Christian Fehmer Date: Thu, 7 Aug 2025 14:48:48 +0200 Subject: [PATCH] impr(config): validation on layoutFluid and polyglot (@fehmer) (#6844) --- frontend/__tests__/root/config.spec.ts | 3 ++- frontend/src/ts/pages/settings.ts | 4 ++-- packages/schemas/src/configs.ts | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/__tests__/root/config.spec.ts b/frontend/__tests__/root/config.spec.ts index 4d7d29486..6151b7f49 100644 --- a/frontend/__tests__/root/config.spec.ts +++ b/frontend/__tests__/root/config.spec.ts @@ -1089,8 +1089,9 @@ describe("Config", () => { expect(Config.setQuoteLength([-4 as any, 5 as any])).toBe(false); }); it("setCustomLayoutfluid", () => { - expect(Config.setCustomLayoutfluid(["qwerty"])).toBe(true); + expect(Config.setCustomLayoutfluid(["qwerty", "qwertz"])).toBe(true); + expect(Config.setCustomLayoutfluid(["qwerty"])).toBe(false); expect(Config.setCustomLayoutfluid([])).toBe(false); expect(Config.setCustomLayoutfluid("qwerty#qwertz" as any)).toBe(false); expect(Config.setCustomLayoutfluid("invalid" as any)).toBe(false); diff --git a/frontend/src/ts/pages/settings.ts b/frontend/src/ts/pages/settings.ts index f376ae147..d89eb19e8 100644 --- a/frontend/src/ts/pages/settings.ts +++ b/frontend/src/ts/pages/settings.ts @@ -607,7 +607,7 @@ async function fillSettingsPage(): Promise { customLayoutFluidSelect = new SlimSelect({ select: ".pageSettings .section[data-config-name='customLayoutfluid'] select", - settings: { keepOrder: true, minSelected: 1 }, + settings: { keepOrder: true, minSelected: 2 }, events: { afterChange: (newVal): void => { const customLayoutfluid = newVal.map( @@ -625,7 +625,7 @@ async function fillSettingsPage(): Promise { customPolyglotSelect = new SlimSelect({ select: ".pageSettings .section[data-config-name='customPolyglot'] select", - settings: { minSelected: 1 }, + settings: { minSelected: 2 }, data: getLanguageDropdownData((language) => Config.customPolyglot.includes(language) ), diff --git a/packages/schemas/src/configs.ts b/packages/schemas/src/configs.ts index e1cc5d095..aae692503 100644 --- a/packages/schemas/src/configs.ts +++ b/packages/schemas/src/configs.ts @@ -211,11 +211,11 @@ export type CustomBackgroundFilter = z.infer< export const CustomLayoutFluidSchema = z .array(Layouts.LayoutNameSchema) - .min(1) + .min(2) .max(15); export type CustomLayoutFluid = z.infer; -export const CustomPolyglotSchema = z.array(LanguageSchema).min(1); +export const CustomPolyglotSchema = z.array(LanguageSchema).min(2); export type CustomPolyglot = z.infer; export const MonkeyPowerLevelSchema = z.enum(["off", "1", "2", "3", "4"]);