From 1c37585be2d6e986b244c9ca5ad9c0df5af5f89e Mon Sep 17 00:00:00 2001 From: egg Date: Sun, 14 Dec 2025 16:14:52 +0800 Subject: [PATCH] fix: resume translation polling when returning to task detail page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add useEffect to check for in-progress translations on page load. This ensures that if user navigates away during translation and returns, the UI will resume polling and show completion status. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- frontend/src/pages/TaskDetailPage.tsx | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/frontend/src/pages/TaskDetailPage.tsx b/frontend/src/pages/TaskDetailPage.tsx index d7c8f5e..8ad60da 100644 --- a/frontend/src/pages/TaskDetailPage.tsx +++ b/frontend/src/pages/TaskDetailPage.tsx @@ -107,6 +107,32 @@ export default function TaskDetailPage() { retry: false, }) + // Check for in-progress translation on page load + useEffect(() => { + if (!taskId || !taskDetail || taskDetail.status !== 'completed') return + + const checkTranslationStatus = async () => { + try { + const status = await apiClientV2.getTranslationStatus(taskId) + if (status.status === 'translating' || status.status === 'pending') { + // Resume polling for in-progress translation + setIsTranslating(true) + setTranslationStatus(status.status) + if (status.progress) { + setTranslationProgress(status.progress.percentage) + } + if (status.target_lang) { + setTargetLang(status.target_lang) + } + } + } catch { + // No active translation job - this is normal + } + } + + checkTranslationStatus() + }, [taskId, taskDetail]) + // Poll translation status when translating useEffect(() => { if (!isTranslating || !taskId) return