분할레이아웃

This commit is contained in:
kjs
2025-10-15 17:25:38 +09:00
parent 3d242c1c8e
commit 7686158a01
22 changed files with 2119 additions and 218 deletions

View File

@@ -23,6 +23,7 @@ const CONFIG_PANEL_MAP: Record<string, () => Promise<any>> = {
"accordion-basic": () => import("@/lib/registry/components/accordion-basic/AccordionBasicConfigPanel"),
"table-list": () => import("@/lib/registry/components/table-list/TableListConfigPanel"),
"card-display": () => import("@/lib/registry/components/card-display/CardDisplayConfigPanel"),
"split-panel-layout": () => import("@/lib/registry/components/split-panel-layout/SplitPanelLayoutConfigPanel"),
};
// ConfigPanel 컴포넌트 캐시
@@ -101,6 +102,7 @@ export interface ComponentConfigPanelProps {
onChange: (config: Record<string, any>) => void;
screenTableName?: string; // 화면에서 지정한 테이블명
tableColumns?: any[]; // 테이블 컬럼 정보
tables?: any[]; // 전체 테이블 목록
}
export const DynamicComponentConfigPanel: React.FC<ComponentConfigPanelProps> = ({
@@ -109,9 +111,10 @@ export const DynamicComponentConfigPanel: React.FC<ComponentConfigPanelProps> =
onChange,
screenTableName,
tableColumns,
tables,
}) => {
console.log(`🔥 DynamicComponentConfigPanel 렌더링 시작: ${componentId}`);
const [ConfigPanelComponent, setConfigPanelComponent] = React.useState<React.ComponentType<any> | null>(null);
const [loading, setLoading] = React.useState(true);
const [error, setError] = React.useState<string | null>(null);
@@ -187,18 +190,21 @@ export const DynamicComponentConfigPanel: React.FC<ComponentConfigPanelProps> =
ConfigPanelComponent: ConfigPanelComponent?.name,
config,
configType: typeof config,
configKeys: typeof config === 'object' ? Object.keys(config || {}) : 'not object',
configKeys: typeof config === "object" ? Object.keys(config || {}) : "not object",
screenTableName,
tableColumns: Array.isArray(tableColumns) ? tableColumns.length : tableColumns
tableColumns: Array.isArray(tableColumns) ? tableColumns.length : tableColumns,
tables: Array.isArray(tables) ? tables.length : tables,
tablesType: typeof tables,
});
return (
<ConfigPanelComponent
config={config}
onChange={onChange}
onConfigChange={onChange} // TableListConfigPanel을 위한 추가 prop
onConfigChange={onChange} // TableListConfigPanel을 위한 추가 prop
screenTableName={screenTableName}
tableColumns={tableColumns}
tables={tables} // 전체 테이블 목록 전달
/>
);
};