58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
|
|
"use client";
|
||
|
|
|
||
|
|
import React from "react";
|
||
|
|
import { AutoRegisteringComponentRenderer } from "../../AutoRegisteringComponentRenderer";
|
||
|
|
import { ImageWidgetDefinition } from "./index";
|
||
|
|
import { ImageWidget } from "@/components/screen/widgets/types/ImageWidget";
|
||
|
|
|
||
|
|
/**
|
||
|
|
* ImageWidget 렌더러
|
||
|
|
* 자동 등록 시스템을 사용하여 컴포넌트를 레지스트리에 등록
|
||
|
|
*/
|
||
|
|
export class ImageWidgetRenderer extends AutoRegisteringComponentRenderer {
|
||
|
|
static componentDefinition = ImageWidgetDefinition;
|
||
|
|
|
||
|
|
render(): React.ReactElement {
|
||
|
|
return <ImageWidget {...this.props} renderer={this} />;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 컴포넌트별 특화 메서드들
|
||
|
|
*/
|
||
|
|
|
||
|
|
// image 타입 특화 속성 처리
|
||
|
|
protected getImageWidgetProps() {
|
||
|
|
const baseProps = this.getWebTypeProps();
|
||
|
|
|
||
|
|
// image 타입에 특화된 추가 속성들
|
||
|
|
return {
|
||
|
|
...baseProps,
|
||
|
|
// 여기에 image 타입 특화 속성들 추가
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
// 값 변경 처리
|
||
|
|
protected handleValueChange = (value: any) => {
|
||
|
|
this.updateComponent({ value });
|
||
|
|
};
|
||
|
|
|
||
|
|
// 포커스 처리
|
||
|
|
protected handleFocus = () => {
|
||
|
|
// 포커스 로직
|
||
|
|
};
|
||
|
|
|
||
|
|
// 블러 처리
|
||
|
|
protected handleBlur = () => {
|
||
|
|
// 블러 로직
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
// 자동 등록 실행
|
||
|
|
ImageWidgetRenderer.registerSelf();
|
||
|
|
|
||
|
|
// Hot Reload 지원 (개발 모드)
|
||
|
|
if (process.env.NODE_ENV === "development") {
|
||
|
|
ImageWidgetRenderer.enableHotReload();
|
||
|
|
}
|
||
|
|
|