diff --git a/qwen3-tts-frontend/src/pages/Audiobook.tsx b/qwen3-tts-frontend/src/pages/Audiobook.tsx index 1c7817c..528b7f7 100644 --- a/qwen3-tts-frontend/src/pages/Audiobook.tsx +++ b/qwen3-tts-frontend/src/pages/Audiobook.tsx @@ -1445,6 +1445,7 @@ function ChaptersPanel({ const [regeneratingSegs, setRegeneratingSegs] = useState>(new Set()) const [audioVersions, setAudioVersions] = useState>({}) const [chapterPlayerChIdx, setChapterPlayerChIdx] = useState(null) + const [confirmAction, setConfirmAction] = useState<{ label: string; onConfirm: () => void } | null>(null) const prevSegStatusRef = useRef>({}) const initialExpandDoneRef = useRef(false) const segRefs = useRef>({}) @@ -1577,6 +1578,19 @@ function ChaptersPanel({ const hasChapters = detail && detail.chapters.length > 0 && ['analyzing', 'ready', 'generating', 'done'].includes(status) return ( + <> + { if (!open) setConfirmAction(null) }}> + + + 确认操作 + +

{confirmAction?.label}

+
+ + +
+
+
@@ -1668,7 +1682,7 @@ function ChaptersPanel({ {t('projectCard.chapters.generate')} - @@ -1682,10 +1696,7 @@ function ChaptersPanel({ {(ch.status === 'done' || (ch.status === 'ready' && chAllDone)) && ( <> {t('projectCard.chapters.doneBadge', { count: chDone })} - + )} {ch.status === 'error' && ( @@ -1868,6 +1883,7 @@ function ChaptersPanel({ })()}
+ ) }