From cfa61a426d1afa8c4bfa9e81e7424e93b468a483 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 27 Jan 2026 21:56:09 +0800 Subject: [PATCH] fix: maintain processing status during auto-retry to show loading animation --- components/scene-fusion-dialog.tsx | 4 ++-- components/scene-fusion-view.tsx | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/components/scene-fusion-dialog.tsx b/components/scene-fusion-dialog.tsx index e774bbc..3241ba1 100644 --- a/components/scene-fusion-dialog.tsx +++ b/components/scene-fusion-dialog.tsx @@ -338,9 +338,9 @@ export function SceneFusionDialog({ open, onOpenChange }: SceneFusionDialogProps // 检查是否需要自动重试 if (retryCount < MAX_AUTO_RETRY) { console.log(`[SceneFusion] Auto-retrying scene ${id} (${retryCount + 1}/${MAX_AUTO_RETRY})...`); - // 更新重试计数(用户无感) + // 更新重试计数,保持 processing 状态(用户无感) setScenes(prev => prev.map(s => - s.id === id ? { ...s, retryCount: retryCount + 1 } : s + s.id === id ? { ...s, status: 'processing', retryCount: retryCount + 1, error: undefined } : s )); // 延迟2秒后自动重试 await new Promise(resolve => setTimeout(resolve, 2000)); diff --git a/components/scene-fusion-view.tsx b/components/scene-fusion-view.tsx index d73f19a..c641c78 100644 --- a/components/scene-fusion-view.tsx +++ b/components/scene-fusion-view.tsx @@ -477,9 +477,9 @@ export function SceneFusionView({ onBack }: SceneFusionViewProps) { // 检查是否需要自动重试 if (retryCount < MAX_AUTO_RETRY) { console.log(`[SceneFusion] Auto-retrying scene ${id} (${retryCount + 1}/${MAX_AUTO_RETRY})...`); - // 更新重试计数(用户无感) + // 更新重试计数,保持 processing 状态(用户无感) setScenes(prev => prev.map(s => - s.id === id ? { ...s, retryCount: retryCount + 1 } : s + s.id === id ? { ...s, status: 'processing', retryCount: retryCount + 1, error: undefined } : s )); // 延迟2秒后自动重试 await new Promise(resolve => setTimeout(resolve, 2000)); @@ -490,7 +490,7 @@ export function SceneFusionView({ onBack }: SceneFusionViewProps) { setScenes(prev => prev.map(s => s.id === id ? { ...s, status: 'failed', error: `重试${MAX_AUTO_RETRY}次后失败: ${error instanceof Error ? error.message : '处理失败'}` } : s )); - toast.error(error instanceof Error ? error.message : '重新生成失败'); + toast.error(`重试${MAX_AUTO_RETRY}次后仍然失败`); } };