- v2-timeline-scheduler의 구현 상태를 체크리스트에 반영하였으며, 관련 문서화 작업을 완료하였습니다. - 각 구성 요소의 구현 완료 상태를 명시하고, 향후 작업 계획을 업데이트하였습니다. - 타임라인 스케줄러 컴포넌트를 레지스트리에 추가하여 통합하였습니다.
58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
"use client";
|
|
|
|
import React from "react";
|
|
import { AutoRegisteringComponentRenderer } from "../../AutoRegisteringComponentRenderer";
|
|
import { V2TimelineSchedulerDefinition } from "./index";
|
|
import { TimelineSchedulerComponent } from "./TimelineSchedulerComponent";
|
|
|
|
/**
|
|
* TimelineScheduler 렌더러
|
|
* 자동 등록 시스템을 사용하여 컴포넌트를 레지스트리에 등록
|
|
*/
|
|
export class TimelineSchedulerRenderer extends AutoRegisteringComponentRenderer {
|
|
static componentDefinition = V2TimelineSchedulerDefinition;
|
|
|
|
render(): React.ReactElement {
|
|
return (
|
|
<TimelineSchedulerComponent
|
|
{...this.props}
|
|
config={this.props.component?.componentConfig || {}}
|
|
isDesignMode={this.props.isDesignMode}
|
|
formData={this.props.formData}
|
|
componentId={this.props.component?.id}
|
|
/>
|
|
);
|
|
}
|
|
|
|
// 설정 변경 핸들러
|
|
protected handleConfigChange = (config: any) => {
|
|
console.log("📥 TimelineSchedulerRenderer에서 설정 변경 받음:", config);
|
|
|
|
// 상위 컴포넌트의 onConfigChange 호출 (화면 설계자에게 알림)
|
|
if (this.props.onConfigChange) {
|
|
this.props.onConfigChange(config);
|
|
}
|
|
|
|
this.updateComponent({ config });
|
|
};
|
|
|
|
// 값 변경 처리
|
|
protected handleValueChange = (value: any) => {
|
|
this.updateComponent({ value });
|
|
};
|
|
}
|
|
|
|
// 자동 등록 실행
|
|
TimelineSchedulerRenderer.registerSelf();
|
|
|
|
// 강제 등록 (디버깅용)
|
|
if (typeof window !== "undefined") {
|
|
setTimeout(() => {
|
|
try {
|
|
TimelineSchedulerRenderer.registerSelf();
|
|
} catch (error) {
|
|
console.error("❌ TimelineScheduler 강제 등록 실패:", error);
|
|
}
|
|
}, 1000);
|
|
}
|