ERP-node/frontend/lib/registry/layouts/split/SplitLayoutRenderer.tsx

50 lines
1.2 KiB
TypeScript
Raw Permalink Normal View History

2025-09-10 18:36:28 +09:00
"use client";
import { AutoRegisteringLayoutRenderer } from "../AutoRegisteringLayoutRenderer";
import { LayoutRendererProps } from "../BaseLayoutRenderer";
import { SplitLayoutDefinition } from "./index";
import { SplitLayout } from "./SplitLayout";
/**
* split ( )
*/
export class SplitLayoutRenderer extends AutoRegisteringLayoutRenderer {
/**
* ( )
*/
static readonly layoutDefinition = SplitLayoutDefinition;
/**
*
*/
static {
this.registerSelf();
}
/**
*
*/
render(): React.ReactElement {
return <SplitLayout {...this.props} renderer={this} />;
}
}
/**
* React ( )
*/
export const SplitLayoutComponent: React.FC<LayoutRendererProps> = (props) => {
const renderer = new SplitLayoutRenderer(props);
return renderer.render();
};
// 개발 모드에서 Hot Reload 지원
if (process.env.NODE_ENV === 'development') {
// HMR API 등록
if ((module as any).hot) {
(module as any).hot.accept();
(module as any).hot.dispose(() => {
SplitLayoutRenderer.unregisterSelf();
});
}
}