diff --git a/frontend/components/screen/panels/UnifiedPropertiesPanel.tsx b/frontend/components/screen/panels/UnifiedPropertiesPanel.tsx index 57964650..6e027bc3 100644 --- a/frontend/components/screen/panels/UnifiedPropertiesPanel.tsx +++ b/frontend/components/screen/panels/UnifiedPropertiesPanel.tsx @@ -524,8 +524,10 @@ export const UnifiedPropertiesPanel: React.FC = ({ tables={tables} onChange={(newConfig) => { console.log("🔄 DynamicComponentConfigPanel onChange:", newConfig); - // 전체 componentConfig를 업데이트 - handleUpdate("componentConfig", newConfig); + // 개별 속성별로 업데이트하여 다른 속성과의 충돌 방지 + Object.entries(newConfig).forEach(([key, value]) => { + handleUpdate(`componentConfig.${key}`, value); + }); }} /> diff --git a/frontend/lib/registry/components/text-display/TextDisplayComponent.tsx b/frontend/lib/registry/components/text-display/TextDisplayComponent.tsx index dc4f15da..a1e96a78 100644 --- a/frontend/lib/registry/components/text-display/TextDisplayComponent.tsx +++ b/frontend/lib/registry/components/text-display/TextDisplayComponent.tsx @@ -3,6 +3,7 @@ import React from "react"; import { ComponentRendererProps } from "../../types"; import { TextDisplayConfig } from "./types"; +import { filterDOMProps } from "@/lib/utils/domPropsFilter"; export interface TextDisplayComponentProps extends ComponentRendererProps { // 추가 props가 필요한 경우 여기에 정의 @@ -53,20 +54,7 @@ export const TextDisplayComponent: React.FC = ({ .join(" "); // DOM props 필터링 (React 관련 props 제거) - const { - component: _component, - isDesignMode: _isDesignMode, - isSelected: _isSelected, - isInteractive: _isInteractive, - screenId: _screenId, - tableName: _tableName, - onRefresh: _onRefresh, - onClose: _onClose, - formData: _formData, - onFormDataChange: _onFormDataChange, - componentConfig: _componentConfig, - ...domProps - } = props; + const domProps = filterDOMProps(props); // 텍스트 스타일 계산 const textStyle: React.CSSProperties = {