화면 분할패널 커밋

This commit is contained in:
kjs
2025-11-27 12:54:57 +09:00
parent 454f79caec
commit 51c49f7a3d
4 changed files with 419 additions and 3 deletions

View File

@@ -864,11 +864,14 @@ export class ImprovedButtonActionExecutor {
context: ButtonExecutionContext,
): Promise<ExecutionResult> {
try {
// 기존 ButtonActionExecutor 로직을 여기서 호출하거나
// 간단한 액션들을 직접 구현
const startTime = performance.now();
// 임시 구현 - 실제로는 기존 ButtonActionExecutor를 호출해야 함
// transferData 액션 처리
if (buttonConfig.actionType === "transferData") {
return await this.executeTransferDataAction(buttonConfig, formData, context);
}
// 기존 액션들 (임시 구현)
const result = {
success: true,
message: `${buttonConfig.actionType} 액션 실행 완료`,
@@ -889,6 +892,43 @@ export class ImprovedButtonActionExecutor {
}
}
/**
* 데이터 전달 액션 실행
*/
private static async executeTransferDataAction(
buttonConfig: ExtendedButtonTypeConfig,
formData: Record<string, any>,
context: ButtonExecutionContext,
): Promise<ExecutionResult> {
const startTime = performance.now();
try {
const dataTransferConfig = buttonConfig.dataTransfer;
if (!dataTransferConfig) {
throw new Error("데이터 전달 설정이 없습니다.");
}
console.log("📦 데이터 전달 시작:", dataTransferConfig);
// 1. 화면 컨텍스트에서 소스 컴포넌트 찾기
const { ScreenContextProvider } = await import("@/contexts/ScreenContext");
// 실제로는 현재 화면의 컨텍스트를 사용해야 하지만, 여기서는 전역적으로 접근할 수 없음
// 대신 context에 screenContext를 전달하도록 수정 필요
throw new Error("데이터 전달 기능은 버튼 컴포넌트에서 직접 구현되어야 합니다.");
} catch (error) {
console.error("❌ 데이터 전달 실패:", error);
return {
success: false,
message: `데이터 전달 실패: ${error.message}`,
executionTime: performance.now() - startTime,
error: error.message,
};
}
}
/**
* 🔥 실행 오류 처리 및 롤백
*/