"use client"; import React from "react"; import { AutoRegisteringComponentRenderer } from "../../AutoRegisteringComponentRenderer"; import { ModalRepeaterTableDefinition } from "./index"; import { ModalRepeaterTableComponent } from "./ModalRepeaterTableComponent"; /** * ModalRepeaterTable 렌더러 * 자동 등록 시스템을 사용하여 컴포넌트를 레지스트리에 등록 */ export class ModalRepeaterTableRenderer extends AutoRegisteringComponentRenderer { static componentDefinition = ModalRepeaterTableDefinition; render(): React.ReactElement { // onChange 콜백을 명시적으로 전달 // eslint-disable-next-line @typescript-eslint/no-explicit-any const handleChange = (newValue: any[]) => { console.log("🔄 ModalRepeaterTableRenderer onChange:", newValue.length, "개 항목"); // 컴포넌트 업데이트 this.updateComponent({ value: newValue }); // 원본 onChange 콜백도 호출 (있다면) if (this.props.onChange) { this.props.onChange(newValue); } }; // renderer prop 제거 (불필요) // eslint-disable-next-line @typescript-eslint/no-unused-vars const { onChange, ...restProps } = this.props; return ; } /** * 값 변경 처리 (레거시 메서드 - 호환성 유지) */ // eslint-disable-next-line @typescript-eslint/no-explicit-any protected handleValueChange = (value: any) => { this.updateComponent({ value }); }; } // 자동 등록 실행 ModalRepeaterTableRenderer.registerSelf(); // Hot Reload 지원 (개발 모드) if (process.env.NODE_ENV === "development") { ModalRepeaterTableRenderer.enableHotReload(); }