"use client";

import React from "react";
import { AutoRegisteringComponentRenderer } from "../../AutoRegisteringComponentRenderer";
import { V2SplitPanelLayoutDefinition } from "./index";
import { SplitPanelLayoutComponent } from "./SplitPanelLayoutComponent";

/**
 * SplitPanelLayout 렌더러
 * 자동 등록 시스템을 사용하여 컴포넌트를 레지스트리에 등록
 */
export class SplitPanelLayoutRenderer extends AutoRegisteringComponentRenderer {
  static componentDefinition = V2SplitPanelLayoutDefinition;

  render(): React.ReactElement {
    return <SplitPanelLayoutComponent {...this.props} renderer={this} />;
  }

  /**
   * 컴포넌트별 특화 메서드들
   */

  // 좌측 패널 데이터 로드
  protected async loadLeftPanelData() {
    // 좌측 패널 데이터 로드 로직
  }

  // 우측 패널 데이터 로드 (선택된 항목 기반)
  protected async loadRightPanelData(selectedItem: any) {
    // 우측 패널 데이터 로드 로직
  }
}

// 자동 등록 실행
SplitPanelLayoutRenderer.registerSelf();

// Hot Reload 지원 (개발 모드)
if (process.env.NODE_ENV === "development") {
  SplitPanelLayoutRenderer.enableHotReload();
}
