first commit
This commit is contained in:
29
calcom/packages/lib/validateBookerLayouts.ts
Normal file
29
calcom/packages/lib/validateBookerLayouts.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import { bookerLayoutOptions, type BookerLayoutSettings } from "@calcom/prisma/zod-utils";
|
||||
|
||||
export const validateBookerLayouts = (settings: BookerLayoutSettings) => {
|
||||
// Allow layouts to be null, as per database defaults.
|
||||
if (settings === null) return;
|
||||
|
||||
// At least one layout should be enabled.
|
||||
const atLeastOneLayoutIsEnabled = settings?.enabledLayouts.length > 0;
|
||||
if (!atLeastOneLayoutIsEnabled) return "bookerlayout_error_min_one_enabled";
|
||||
|
||||
// Default layout should also be enabled.
|
||||
const defaultLayoutIsInEnabledLayouts = settings?.enabledLayouts.find(
|
||||
(layout) => layout === settings.defaultLayout
|
||||
);
|
||||
|
||||
if (!defaultLayoutIsInEnabledLayouts) return "bookerlayout_error_default_not_enabled";
|
||||
|
||||
// Validates that users don't try to insert an unknown layout into DB.
|
||||
const enabledLayoutsDoesntContainUnknownLayout = settings?.enabledLayouts.every((layout) =>
|
||||
bookerLayoutOptions.includes(layout)
|
||||
);
|
||||
const defaultLayoutIsKnown = bookerLayoutOptions.includes(settings.defaultLayout);
|
||||
|
||||
if (!enabledLayoutsDoesntContainUnknownLayout || !defaultLayoutIsKnown) {
|
||||
return "bookerlayout_error_unknown_layout";
|
||||
}
|
||||
};
|
||||
|
||||
// export const getEnabledLayouts =
|
||||
Reference in New Issue
Block a user