"use client"; import type { Block, TextBlockProps, ButtonBlockProps, ImageBlockProps, SectionBlockProps } from "@/features/editor/state/editorStore"; // 에디터 크롬 없이 실제 랜딩 페이지처럼 블록들을 렌더링하는 컴포넌트 interface PublicPageRendererProps { blocks: Block[]; } export function PublicPageRenderer({ blocks }: PublicPageRendererProps) { const sectionBlocks = blocks.filter((b) => b.type === "section"); const rootBlocks = blocks.filter((b) => !b.sectionId && b.type !== "section"); const renderBlock = (block: Block) => { if (block.type === "text") { const props = block.props as TextBlockProps; const alignClass = props.align === "center" ? "text-center" : props.align === "right" ? "text-right" : "text-left"; const sizeClass = props.size === "sm" ? "text-sm" : props.size === "lg" ? "text-2xl" : "text-base"; return (
{props.text}
); } if (block.type === "button") { const props = block.props as ButtonBlockProps; return ( {props.label} ); } if (block.type === "image") { const props = block.props as ImageBlockProps; return (