diff --git a/frontend/src/components/common/ImageQueueModal.tsx b/frontend/src/components/common/ImageQueueModal.tsx index 0d731f82..e004cb16 100644 --- a/frontend/src/components/common/ImageQueueModal.tsx +++ b/frontend/src/components/common/ImageQueueModal.tsx @@ -418,14 +418,19 @@ export default function ImageQueueModal({ delete progressIntervalsRef.current[item.index]; } return { ...item, status: 'completed', progress: 100 }; - } else if (index + 1 === current_image || current_image_id === item.imageId) { - // Currently processing - use backend progress if available (works for featured and in-article) - const backendProgress = (current_image_progress !== undefined && current_image_id === item.imageId) + } + // SAFE: Only change to 'processing' when backend confirms with actual image ID + // This ensures progress bar only moves when actual processing starts + // Works consistently for both featured and in-article images + else if (current_image_id === item.imageId) { + // Currently processing - use backend progress if available + const backendProgress = (current_image_progress !== undefined) ? current_image_progress : (smoothProgress[item.index] ?? 0); return { ...item, status: 'processing', progress: backendProgress }; } + // Keep as 'pending' until backend confirms processing with image ID return item; }); }); diff --git a/frontend/src/pages/Billing/Usage.tsx b/frontend/src/pages/Billing/Usage.tsx index e33ed13f..b505f35f 100644 --- a/frontend/src/pages/Billing/Usage.tsx +++ b/frontend/src/pages/Billing/Usage.tsx @@ -71,7 +71,7 @@ export default function Usage() {
Monitor your plan limits and usage statistics