From a770bb4f6e6aef0781aeca4c8b8147899759f048 Mon Sep 17 00:00:00 2001 From: bdim404 Date: Tue, 10 Mar 2026 18:15:45 +0800 Subject: [PATCH] feat(audiobook): enhance chapter expansion logic in ProjectCard component --- qwen3-tts-frontend/src/pages/Audiobook.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/qwen3-tts-frontend/src/pages/Audiobook.tsx b/qwen3-tts-frontend/src/pages/Audiobook.tsx index 53babaf..47df9c6 100644 --- a/qwen3-tts-frontend/src/pages/Audiobook.tsx +++ b/qwen3-tts-frontend/src/pages/Audiobook.tsx @@ -373,6 +373,19 @@ function ProjectCard({ project, onRefresh }: { project: AudiobookProject; onRefr return () => clearInterval(id) }, [isPolling, project.status, hasParsingChapter, onRefresh, fetchSegments, fetchDetail]) + useEffect(() => { + if (!detail || segments.length === 0) return + const generatingChapterIds = detail.chapters + .filter(ch => segments.some(s => s.chapter_index === ch.chapter_index && s.status === 'generating')) + .map(ch => ch.id) + if (generatingChapterIds.length === 0) return + setExpandedChapters(prev => { + const next = new Set(prev) + generatingChapterIds.forEach(id => next.add(id)) + return next.size === prev.size ? prev : next + }) + }, [segments, detail]) + const handleAnalyze = async () => { const s = project.status if (['characters_ready', 'ready', 'done'].includes(s)) { @@ -716,7 +729,10 @@ function ProjectCard({ project, onRefresh }: { project: AudiobookProject; onRefr )} {ch.status === 'ready' && !chGenerating && !chAllDone && ( - )}