fix: maintain processing status during auto-retry to show loading animation

This commit is contained in:
Your Name 2026-01-27 21:56:09 +08:00
parent 59bc3636e1
commit cfa61a426d
2 changed files with 5 additions and 5 deletions

View File

@ -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));

View File

@ -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}次后仍然失败`);
}
};