feat(cms): add Cinematic Story Scroll and Apple Showcase blocks to Page Builder

This commit is contained in:
Your Name committed 2026-10-17 09:06:44 +07:00
1 parent 25cbe3549e
commit 8d9f2fc587
10 files changed
+971 -8

No files matched your search

+10 -1
View File
@@ -1,6 +1,6 @@
import { Elysia, t } from "elysia";
import prisma from "../lib/prisma";
import { LocalizedStringSchema, HeroSectionPayloadSchema, CategoriesSectionPayloadSchema, ProductsSectionPayloadSchema, BannerSectionPayloadSchema, TextSectionPayloadSchema, AnnouncementBarSectionPayloadSchema, NewsletterSectionPayloadSchema, EditorialTileSectionPayloadSchema, FeaturedTilesSectionPayloadSchema, EditorialCarouselSectionPayloadSchema, HeroArticleSectionPayloadSchema, RichTextSectionPayloadSchema, ScentNotesBreakdownSectionPayloadSchema, QuoteCalloutSectionPayloadSchema, ProductCarouselSectionPayloadSchema, AccordionSectionPayloadSchema, ContactInfoSectionPayloadSchema, ContactFormSectionPayloadSchema, HeroV2SectionPayloadSchema, HeroVideoSectionPayloadSchema, UspBarSectionPayloadSchema, CustomSectionPayloadSchema } from "@homaroma/types";
import { LocalizedStringSchema, HeroSectionPayloadSchema, CategoriesSectionPayloadSchema, ProductsSectionPayloadSchema, BannerSectionPayloadSchema, TextSectionPayloadSchema, AnnouncementBarSectionPayloadSchema, NewsletterSectionPayloadSchema, EditorialTileSectionPayloadSchema, FeaturedTilesSectionPayloadSchema, EditorialCarouselSectionPayloadSchema, HeroArticleSectionPayloadSchema, RichTextSectionPayloadSchema, ScentNotesBreakdownSectionPayloadSchema, QuoteCalloutSectionPayloadSchema, ProductCarouselSectionPayloadSchema, AccordionSectionPayloadSchema, ContactInfoSectionPayloadSchema, ContactFormSectionPayloadSchema, HeroV2SectionPayloadSchema, HeroVideoSectionPayloadSchema, UspBarSectionPayloadSchema, CustomSectionPayloadSchema, CinematicStoryScrollSectionPayloadSchema, AppleShowcaseSectionPayloadSchema } from "@homaroma/types";
import { z } from "zod";
import { adminOnly } from "../middleware/auth";
const RESERVED_SLUGS = [
@@ -520,6 +520,15 @@ function validateSectionPayload(type, payload) {
case "CONTACT_FORM":
schema = ContactFormSectionPayloadSchema;
break;
case "CINEMATIC_STORY_SCROLL":
case "STORY_SCROLL":
schema = CinematicStoryScrollSectionPayloadSchema;
break;
case "APPLE_SHOWCASE":
case "APPLE_KEYNOTE_SHOWCASE":
case "APPLE_WATCH_TOUR":
schema = AppleShowcaseSectionPayloadSchema;
break;
default:
return {
success: false,
+11
View File
@@ -43,6 +43,8 @@ import {
BannerMinimalSectionPayloadSchema,
AnnouncementBarMinimalSectionPayloadSchema,
UspMinimalSectionPayloadSchema,
CinematicStoryScrollSectionPayloadSchema,
AppleShowcaseSectionPayloadSchema,
SectionSpacingPayloadSchema,
PAGE_SECTION_LOCALIZED_PATHS,
type SectionType,
@@ -1428,6 +1430,15 @@ export function validateSectionPayload(
case "USP_MINIMAL":
schema = UspMinimalSectionPayloadSchema;
break;
case "CINEMATIC_STORY_SCROLL":
case "STORY_SCROLL":
schema = CinematicStoryScrollSectionPayloadSchema;
break;
case "APPLE_SHOWCASE":
case "APPLE_KEYNOTE_SHOWCASE":
case "APPLE_WATCH_TOUR":
schema = AppleShowcaseSectionPayloadSchema;
break;
default:
return {
success: false,