- ConditionalSection 타입 변경 (components[] → screenId, screenName) * 각 조건마다 컴포넌트를 직접 배치하는 대신 기존 화면을 선택 * 복잡한 입력 폼도 화면 재사용으로 간단히 구성 - ConditionalSectionDropZone을 ConditionalSectionViewer로 교체 * 드롭존 대신 InteractiveScreenViewer 사용 * 선택된 화면을 조건별로 렌더링 * 디자인 모드에서 화면 미선택 시 안내 메시지 표시 - ConfigPanel에서 화면 선택 드롭다운 구현 * screenManagementApi.getScreenList()로 화면 목록 로드 * 각 섹션마다 화면 선택 Select 컴포넌트 * 선택된 화면의 ID와 이름 자동 저장 및 표시 * 로딩 상태 표시 - 기본 설정 업데이트 * defaultConfig에서 components 제거, screenId 추가 * 모든 섹션 기본값을 screenId: null로 설정 - README 문서 개선 * 화면 선택 방식으로 사용법 업데이트 * 사용 사례에 화면 ID 예시 추가 * 구조 다이어그램 수정 (드롭존 → 화면 표시) * 디자인/실행 모드 설명 업데이트 장점: - 기존 화면 재사용으로 생산성 향상 - 복잡한 입력 폼도 간단히 조건부 표시 - 화면 수정 시 자동 반영 - 유지보수 용이
21 lines
679 B
TypeScript
21 lines
679 B
TypeScript
"use client";
|
|
|
|
import React from "react";
|
|
import { ComponentRegistry } from "@/lib/registry/ComponentRegistry";
|
|
import ConditionalContainerDefinition from "./index";
|
|
import { ConditionalContainerComponent } from "./ConditionalContainerComponent";
|
|
import { ConditionalContainerConfigPanel } from "./ConditionalContainerConfigPanel";
|
|
|
|
// 컴포넌트 자동 등록
|
|
if (typeof window !== "undefined") {
|
|
ComponentRegistry.registerComponent({
|
|
...ConditionalContainerDefinition,
|
|
component: ConditionalContainerComponent,
|
|
renderer: ConditionalContainerComponent,
|
|
configPanel: ConditionalContainerConfigPanel,
|
|
} as any);
|
|
}
|
|
|
|
export { ConditionalContainerComponent };
|
|
|