"use client"; import React from "react"; import { ComponentData } from "@/types/screen"; import { componentRegistry, ComponentRenderer } from "../DynamicComponentRenderer"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { BarChart3, LineChart, PieChart } from "lucide-react"; // 차트 컴포넌트 렌더러 const ChartRenderer: ComponentRenderer = ({ component, ...props }) => { const config = component.componentConfig || {}; const { title = "차트 제목", chartType = "bar", // bar, line, pie data = [], style = {}, } = config; const getChartIcon = () => { switch (chartType) { case "line": return ; case "pie": return ; default: return ; } }; const getChartTypeName = () => { switch (chartType) { case "line": return "라인 차트"; case "pie": return "파이 차트"; default: return "바 차트"; } }; return ( {title}
{getChartIcon()}
{getChartTypeName()}
미리보기 모드
{data.length > 0 &&
데이터 {data.length}개 항목
}
); }; // 레지스트리에 등록 componentRegistry.register("chart", ChartRenderer); componentRegistry.register("chart-basic", ChartRenderer); export { ChartRenderer };