Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management

This commit is contained in:
kjs
2025-10-08 09:45:59 +09:00
239 changed files with 14630 additions and 586582 deletions

View File

@@ -63,7 +63,7 @@ export const OptimizedButtonComponent: React.FC<OptimizedButtonProps> = ({
const startTime = performance.now();
try {
console.log(`🔘 Button clicked: ${component.id} (${config?.actionType})`);
// console.log(`🔘 Button clicked: ${component.id} (${config?.actionType})`);
// 🔥 확장된 컨텍스트 데이터 수집
const contextData = {
@@ -89,14 +89,14 @@ export const OptimizedButtonComponent: React.FC<OptimizedButtonProps> = ({
// 🔥 제어 전용 액션인지 확인
const isControlOnlyAction = config?.actionType === "control";
console.log("🎯 OptimizedButtonComponent 실행:", {
actionType: config?.actionType,
isControlOnlyAction,
enableDataflowControl: config?.enableDataflowControl,
hasDataflowConfig: !!config?.dataflowConfig,
selectedRows,
selectedRowsData,
});
// console.log("🎯 OptimizedButtonComponent 실행:", {
// actionType: config?.actionType,
// isControlOnlyAction,
// enableDataflowControl: config?.enableDataflowControl,
// hasDataflowConfig: !!config?.dataflowConfig,
// selectedRows,
// selectedRowsData,
// });
if (config?.enableDataflowControl && config?.dataflowConfig) {
// 🆕 노드 플로우 방식 실행
@@ -169,7 +169,7 @@ export const OptimizedButtonComponent: React.FC<OptimizedButtonProps> = ({
await executeOriginalAction(config?.actionType || "save", contextData);
}
} catch (error) {
console.error("Button execution failed:", error);
// console.error("Button execution failed:", error);
toast.error("버튼 실행 중 오류가 발생했습니다.");
setLastResult({ success: false, error: error.message });
} finally {
@@ -180,9 +180,9 @@ export const OptimizedButtonComponent: React.FC<OptimizedButtonProps> = ({
// 성능 로깅
if (totalTime > 200) {
console.warn(`🐌 Slow button execution: ${totalTime.toFixed(2)}ms`);
// console.warn(`🐌 Slow button execution: ${totalTime.toFixed(2)}ms`);
} else {
console.log(`⚡ Button execution: ${totalTime.toFixed(2)}ms`);
// console.log(`⚡ Button execution: ${totalTime.toFixed(2)}ms`);
}
}
}, [isExecuting, disabled, component.id, config?.actionType, config?.enableDataflowControl, formData, clickCount]);
@@ -250,22 +250,22 @@ export const OptimizedButtonComponent: React.FC<OptimizedButtonProps> = ({
switch (actionType) {
case "save":
console.log("💾 Save action completed:", result);
// console.log("💾 Save action completed:", result);
break;
case "delete":
console.log("🗑️ Delete action completed:", result);
// console.log("🗑️ Delete action completed:", result);
break;
case "search":
console.log("🔍 Search action completed:", result);
// console.log("🔍 Search action completed:", result);
break;
case "add":
console.log(" Add action completed:", result);
// console.log(" Add action completed:", result);
break;
case "edit":
console.log("✏️ Edit action completed:", result);
// console.log("✏️ Edit action completed:", result);
break;
default:
console.log(`${actionType} action completed:`, result);
// console.log(`✅ ${actionType} action completed:`, result);
}
};
@@ -327,7 +327,7 @@ export const OptimizedButtonComponent: React.FC<OptimizedButtonProps> = ({
return newSet;
});
console.error("Background job failed:", status.result);
// console.error("Background job failed:", status.result);
toast.error("백그라운드 처리 중 오류가 발생했습니다.", { duration: 3000 });
return;
}
@@ -336,7 +336,7 @@ export const OptimizedButtonComponent: React.FC<OptimizedButtonProps> = ({
if (pollCount < maxPolls && (status.status === "pending" || status.status === "processing")) {
setTimeout(pollJobStatus, pollInterval);
} else if (pollCount >= maxPolls) {
console.warn(`Background job polling timeout: ${jobId}`);
// console.warn(`Background job polling timeout: ${jobId}`);
setBackgroundJobs((prev) => {
const newSet = new Set(prev);
newSet.delete(jobId);
@@ -344,7 +344,7 @@ export const OptimizedButtonComponent: React.FC<OptimizedButtonProps> = ({
});
}
} catch (error) {
console.error("Failed to check job status:", error);
// console.error("Failed to check job status:", error);
setBackgroundJobs((prev) => {
const newSet = new Set(prev);
newSet.delete(jobId);
@@ -426,7 +426,7 @@ export const OptimizedButtonComponent: React.FC<OptimizedButtonProps> = ({
): Promise<any> => {
// 🔥 제어 액션은 여기서 처리하지 않음 (이미 위에서 처리됨)
if (actionType === "control") {
console.warn("제어 액션은 executeOriginalAction에서 처리되지 않아야 합니다.");
// console.warn("제어 액션은 executeOriginalAction에서 처리되지 않아야 합니다.");
return;
}
@@ -513,7 +513,7 @@ export const OptimizedButtonComponent: React.FC<OptimizedButtonProps> = ({
className={cn(
"transition-all duration-200",
isExecuting && "cursor-wait opacity-75",
backgroundJobs.size > 0 && "border-blue-200 bg-blue-50",
backgroundJobs.size > 0 && "border-primary/20 bg-accent",
config?.backgroundColor && { backgroundColor: config.backgroundColor },
config?.textColor && { color: config.textColor },
config?.borderColor && { borderColor: config.borderColor },