x
This commit is contained in:
1 parent
bd8f5882e0
commit
e509e3f0a2
8 files changed
+581
-12
No files matched your search
+22
-1
@@ -444,6 +444,26 @@ export const RichTextSectionPayloadSchema = z.object({
|
||||
});
|
||||
export type RichTextSectionPayload = z.infer<typeof RichTextSectionPayloadSchema>;
|
||||
|
||||
export const ArticleMediaSectionPayloadSchema = z.object({
|
||||
heading: LocalizedStringSchema.optional(),
|
||||
body: LocalizedStringSchema,
|
||||
imageUrl: z.string().min(1).optional(),
|
||||
imageAlt: LocalizedStringSchema.optional(),
|
||||
imageCaption: LocalizedStringSchema.optional(),
|
||||
imagePosition: z.enum(['left', 'right', 'top']).optional().default('right'),
|
||||
width: z.enum(['narrow', 'standard', 'wide']).optional().default('standard'),
|
||||
background: z.enum(['default', 'muted']).optional().default('default'),
|
||||
}).strict().superRefine((payload, ctx) => {
|
||||
if (payload.imageUrl && !payload.imageAlt) {
|
||||
ctx.addIssue({
|
||||
code: 'custom',
|
||||
path: ['imageAlt'],
|
||||
message: 'imageAlt is required when imageUrl is provided',
|
||||
});
|
||||
}
|
||||
});
|
||||
export type ArticleMediaSectionPayload = z.infer<typeof ArticleMediaSectionPayloadSchema>;
|
||||
|
||||
export const ScentNotesBreakdownSectionPayloadSchema = z.object({
|
||||
title: LocalizedStringSchema.optional(),
|
||||
description: LocalizedStringSchema.optional(),
|
||||
@@ -622,7 +642,7 @@ export type CustomSectionPayload = z.infer<typeof CustomSectionPayloadSchema>;
|
||||
export const PAGE_SECTION_TYPES = [
|
||||
'HERO', 'ANNOUNCEMENT_BAR', 'NEWSLETTER', 'EDITORIAL_TILE',
|
||||
'EDITORIAL_CAROUSEL', 'PRODUCTS', 'CATEGORIES', 'TEXT', 'BANNER',
|
||||
'HERO_ARTICLE', 'RICH_TEXT', 'SCENT_NOTES_BREAKDOWN', 'QUOTE_CALLOUT',
|
||||
'HERO_ARTICLE', 'RICH_TEXT', 'ARTICLE_MEDIA', 'SCENT_NOTES_BREAKDOWN', 'QUOTE_CALLOUT',
|
||||
'PRODUCT_CAROUSEL', 'ACCORDION', 'CONTACT_INFO', 'CONTACT_FORM',
|
||||
'HERO_V2', 'USP_BAR', 'PRODUCT_MAIN', 'PRODUCT_DETAILS', 'PRODUCT_SPECS',
|
||||
'PRODUCT_REVIEWS', 'RELATED_PRODUCTS', 'CUSTOM'
|
||||
@@ -641,6 +661,7 @@ export const PAGE_SECTION_PAYLOAD_SCHEMAS: Record<SectionType, z.ZodType> = {
|
||||
BANNER: BannerSectionPayloadSchema,
|
||||
HERO_ARTICLE: HeroArticleSectionPayloadSchema,
|
||||
RICH_TEXT: RichTextSectionPayloadSchema,
|
||||
ARTICLE_MEDIA: ArticleMediaSectionPayloadSchema,
|
||||
SCENT_NOTES_BREAKDOWN: ScentNotesBreakdownSectionPayloadSchema,
|
||||
QUOTE_CALLOUT: QuoteCalloutSectionPayloadSchema,
|
||||
PRODUCT_CAROUSEL: ProductCarouselSectionPayloadSchema,
|
||||
|
||||
Reference in new issue
Block a user