"use client";

/**
 * V2TableGrouped 설정 패널
 * 기존 TableGroupedConfigPanel의 모든 로직(테이블 Combobox, 컬럼 관리, 그룹화 설정,
 * 체크박스/페이지네이션/연결 필터 등)을 유지하면서
 * componentConfigChanged 이벤트를 추가하여 실시간 업데이트 지원
 */

import React from "react";
import { TableGroupedConfigPanel } from "@/lib/registry/components/v2-table-grouped/TableGroupedConfigPanel";
import type { TableGroupedConfig } from "@/lib/registry/components/v2-table-grouped/types";

interface V2TableGroupedConfigPanelProps {
  config: TableGroupedConfig;
  onChange: (newConfig: Partial<TableGroupedConfig>) => void;
}

export const V2TableGroupedConfigPanel: React.FC<V2TableGroupedConfigPanelProps> = ({
  config,
  onChange,
}) => {
  const handleChange = (newConfig: Partial<TableGroupedConfig>) => {
    onChange(newConfig);

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

  return (
    <TableGroupedConfigPanel
      config={config}
      onChange={handleChange}
    />
  );
};

V2TableGroupedConfigPanel.displayName = "V2TableGroupedConfigPanel";

export default V2TableGroupedConfigPanel;
