Files
flatrender/services/remotion/src/scenes/registry.ts
T

29 lines
1.2 KiB
TypeScript
Raw Normal View History

import type { SceneBlock } from "./types";
import { TitleCardBlock } from "./blocks/TitleCard";
import { CharacterSceneBlock } from "./blocks/CharacterScene";
import { ImageCaptionBlock } from "./blocks/ImageCaption";
import { KineticQuoteBlock } from "./blocks/KineticQuote";
import { SlideshowBlock } from "./blocks/Slideshow";
import { OutroCTABlock } from "./blocks/OutroCTA";
import { LogoRevealBlock } from "./blocks/LogoReveal";
import { StatCounterBlock } from "./blocks/StatCounter";
/**
* The scene-block registry. A FlexStory template is an ordered list of these
* blocks; new template types = new blocks. Each block declares its editable
* fields + duration range (so the studio can clamp per-block, not globally).
*/
export const SCENE_BLOCKS: Record<string, SceneBlock> = {
[TitleCardBlock.id]: TitleCardBlock,
[CharacterSceneBlock.id]: CharacterSceneBlock,
[ImageCaptionBlock.id]: ImageCaptionBlock,
[KineticQuoteBlock.id]: KineticQuoteBlock,
[SlideshowBlock.id]: SlideshowBlock,
[OutroCTABlock.id]: OutroCTABlock,
[LogoRevealBlock.id]: LogoRevealBlock,
[StatCounterBlock.id]: StatCounterBlock,
};
export const BLOCK_LIST = Object.values(SCENE_BLOCKS);
export const getBlock = (id: string): SceneBlock | undefined => SCENE_BLOCKS[id];