"use client"; import React from "react"; import { ComponentData } from "@/types/screen"; import { componentRegistry, ComponentRenderer } from "../DynamicComponentRenderer"; import { Card, CardContent, CardHeader, CardTitle, CardFooter } from "@/components/ui/card"; // 카드 컴포넌트 렌더러 const CardRenderer: ComponentRenderer = ({ component, children, isInteractive = false, ...props }) => { const config = component.componentConfig || {}; const { title = "카드 제목", content = "카드 내용 영역", showHeader = true, showFooter = false, style = {} } = config; console.log("🃏 CardRenderer 렌더링:", { componentId: component.id, isInteractive, config, title, content, }); return ( {showHeader && ( {title} )} {children && React.Children.count(children) > 0 ? ( children ) : isInteractive ? ( // 실제 할당된 화면에서는 설정된 내용 표시
{content}
실제 할당된 화면에서 표시되는 카드입니다.
) : ( // 디자이너에서는 플레이스홀더 표시
카드 내용 영역
컴포넌트를 여기에 배치하세요
)}
{showFooter && (
카드 푸터
)}
); }; // 레지스트리에 등록 componentRegistry.register("card", CardRenderer); export { CardRenderer };