"use client";

/**
 * V2TableList 설정 패널
 * 기존 TableListConfigPanel의 모든 복잡한 로직(테이블 선택, 컬럼 DnD, 엔티티 조인,
 * 데이터 필터, 페이지네이션, 툴바, 체크박스, 정렬, 가로 스크롤 등)을 유지하면서
 * componentConfigChanged 이벤트를 추가하여 실시간 업데이트 지원
 */

import React from "react";
import { TableListConfigPanel } from "@/lib/registry/components/v2-table-list/TableListConfigPanel";
import type { TableListConfig } from "@/lib/registry/components/v2-table-list/types";

interface V2TableListConfigPanelProps {
  config: TableListConfig;
  onChange: (config: Partial<TableListConfig>) => void;
  screenTableName?: string;
  tableColumns?: any[];
  menuObjid?: number;
}

export const V2TableListConfigPanel: React.FC<V2TableListConfigPanelProps> = ({
  config,
  onChange,
  screenTableName,
  tableColumns,
  menuObjid,
}) => {
  const handleChange = (newConfig: Partial<TableListConfig>) => {
    onChange(newConfig);

    if (typeof window !== "undefined") {
      window.dispatchEvent(
        new CustomEvent("componentConfigChanged", {
          detail: { config: { ...config, ...newConfig } },
        })
      );
    }
  };

  return (
    <TableListConfigPanel
      config={config}
      onChange={handleChange}
      screenTableName={screenTableName}
      tableColumns={tableColumns}
    />
  );
};

V2TableListConfigPanel.displayName = "V2TableListConfigPanel";

export default V2TableListConfigPanel;
