diff --git a/frontend/src/components/common/ProgressModal.tsx b/frontend/src/components/common/ProgressModal.tsx index 6eda9fbd..ffde5bb7 100644 --- a/frontend/src/components/common/ProgressModal.tsx +++ b/frontend/src/components/common/ProgressModal.tsx @@ -283,7 +283,8 @@ export default function ProgressModal({ const checklistItems = steps.map((step) => { const actuallyCompleted = isStepCompleted(step.phase, currentPhase, stepLogs); const visuallyCompleted = visuallyCompletedSteps.has(step.phase); - const inProgress = isStepInProgress(step.phase, currentPhase) && !visuallyCompleted; + // Only show as in progress if it's the current phase AND not visually completed yet + const inProgress = step.phase === currentPhase && !visuallyCompleted && !actuallyCompleted; // Get step log and format message const stepLog = stepLogs.find(log => log.stepName === step.phase); @@ -358,20 +359,7 @@ export default function ProgressModal({ }; }, [isOpen, currentPhase, stepLogs, steps, visuallyCompletedSteps]); - // Auto-close on completion after all steps are visually completed + 3 seconds - useEffect(() => { - if (status === 'completed' && allStepsVisuallyCompleted && onClose && !hasAutoClosedRef.current) { - hasAutoClosedRef.current = true; - // Wait 3 seconds after success alert appears - const timer = setTimeout(() => { - onClose(); - }, 3000); - return () => clearTimeout(timer); - } - if (status !== 'completed' || !allStepsVisuallyCompleted) { - hasAutoClosedRef.current = false; - } - }, [status, allStepsVisuallyCompleted, onClose]); + // Don't auto-close - user must click close button // Show success alert only when all steps are visually completed AND status is completed const showSuccess = status === 'completed' && allStepsVisuallyCompleted; @@ -386,34 +374,26 @@ export default function ProgressModal({ >