화면 분할패널 커밋
This commit is contained in:
@@ -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,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 🔥 실행 오류 처리 및 롤백
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user