58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
"use client";
|
|
|
|
import React from "react";
|
|
import { AutoRegisteringComponentRenderer } from "../../AutoRegisteringComponentRenderer";
|
|
import { V2TableGroupedDefinition } from "./index";
|
|
import { TableGroupedComponent } from "./TableGroupedComponent";
|
|
|
|
/**
|
|
* TableGrouped 렌더러
|
|
* 자동 등록 시스템을 사용하여 컴포넌트를 레지스트리에 등록
|
|
*/
|
|
export class TableGroupedRenderer extends AutoRegisteringComponentRenderer {
|
|
static componentDefinition = V2TableGroupedDefinition;
|
|
|
|
render(): React.ReactElement {
|
|
return (
|
|
<TableGroupedComponent
|
|
{...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("📥 TableGroupedRenderer에서 설정 변경 받음:", config);
|
|
|
|
// 상위 컴포넌트의 onConfigChange 호출 (화면 설계자에게 알림)
|
|
if (this.props.onConfigChange) {
|
|
this.props.onConfigChange(config);
|
|
}
|
|
|
|
this.updateComponent({ config });
|
|
};
|
|
|
|
// 값 변경 처리
|
|
protected handleValueChange = (value: any) => {
|
|
this.updateComponent({ value });
|
|
};
|
|
}
|
|
|
|
// 자동 등록 실행
|
|
TableGroupedRenderer.registerSelf();
|
|
|
|
// 강제 등록 (디버깅용)
|
|
if (typeof window !== "undefined") {
|
|
setTimeout(() => {
|
|
try {
|
|
TableGroupedRenderer.registerSelf();
|
|
} catch (error) {
|
|
console.error("❌ TableGrouped 강제 등록 실패:", error);
|
|
}
|
|
}, 1000);
|
|
}
|