ERP-node/frontend/components/v2/config-panels/V2SplitPanelLayoutConfigPan...

64 lines
2.0 KiB
TypeScript
Raw Normal View History

"use client";
/**
* V2SplitPanelLayout
* SplitPanelLayoutConfigPanel의 UX로
* - 진입점: 카드 (///)
* - 내부: 기존 100% CheckboxSwitch, Select
*/
import React from "react";
import { SplitPanelLayoutConfigPanel } from "@/lib/registry/components/v2-split-panel-layout/SplitPanelLayoutConfigPanel";
import type { SplitPanelLayoutConfig } from "@/lib/registry/components/v2-split-panel-layout/types";
import type { TableInfo } from "@/types/screen";
interface V2SplitPanelLayoutConfigPanelProps {
config: SplitPanelLayoutConfig;
onChange: (config: SplitPanelLayoutConfig) => void;
tables?: TableInfo[];
screenTableName?: string;
menuObjid?: number;
}
/**
* V2SplitPanelLayoutConfigPanel
* SplitPanelLayoutConfigPanel을 UX
*
* 4 Dialog
* ( , Switch, Collapsible)
* componentConfigChanged
*/
export const V2SplitPanelLayoutConfigPanel: React.FC<V2SplitPanelLayoutConfigPanelProps> = ({
config,
onChange,
tables,
screenTableName,
menuObjid,
}) => {
const handleChange = (newConfig: SplitPanelLayoutConfig) => {
onChange(newConfig);
if (typeof window !== "undefined") {
window.dispatchEvent(
new CustomEvent("componentConfigChanged", {
detail: { config: newConfig },
})
);
}
};
return (
<SplitPanelLayoutConfigPanel
config={config}
onChange={handleChange}
tables={tables}
screenTableName={screenTableName}
menuObjid={menuObjid}
/>
);
};
V2SplitPanelLayoutConfigPanel.displayName = "V2SplitPanelLayoutConfigPanel";
export default V2SplitPanelLayoutConfigPanel;