46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
|
|
"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;
|