diff --git a/src/hooks/useSubtitleService.ts b/src/hooks/useSubtitleService.ts index c46cb89..b95d51c 100644 --- a/src/hooks/useSubtitleService.ts +++ b/src/hooks/useSubtitleService.ts @@ -160,8 +160,8 @@ const useSubtitleService = () => { segments = [] - // 如果有章节信息,按章节分割 - if (chapters && chapters.length > 0) { + // 如果启用章节模式且有章节信息,按章节分割 + if ((envData.chapterMode ?? true) && chapters && chapters.length > 0) { for (let chapterIdx = 0; chapterIdx < chapters.length; chapterIdx++) { const chapter = chapters[chapterIdx] const nextChapter = chapters[chapterIdx + 1] diff --git a/src/pages/OptionsPage.tsx b/src/pages/OptionsPage.tsx index a99e2f0..40126b7 100644 --- a/src/pages/OptionsPage.tsx +++ b/src/pages/OptionsPage.tsx @@ -77,6 +77,7 @@ const OptionsPage = () => { const {value: askEnabledValue, onChange: setAskEnabledValue} = useEventChecked(envData.askEnabled??ASK_ENABLED_DEFAULT) const {value: cnSearchEnabledValue, onChange: setCnSearchEnabledValue} = useEventChecked(envData.cnSearchEnabled) const {value: summarizeFloatValue, onChange: setSummarizeFloatValue} = useEventChecked(envData.summarizeFloat) + const {value: chapterModeValue, onChange: setChapterModeValue} = useEventChecked(envData.chapterMode ?? true) const [apiKeyValue, { onChange: onChangeApiKeyValue }] = useEventTarget({initialValue: envData.apiKey??''}) const [serverUrlValue, setServerUrlValue] = useState(envData.serverUrl) const [languageValue, { onChange: onChangeLanguageValue }] = useEventTarget({initialValue: envData.language??LANGUAGE_DEFAULT}) @@ -139,6 +140,7 @@ const OptionsPage = () => { searchEnabled: searchEnabledValue, cnSearchEnabled: cnSearchEnabledValue, askEnabled: askEnabledValue, + chapterMode: chapterModeValue, })) toast.success('保存成功') sendExtension(null, 'CLOSE_SIDE_PANEL') @@ -146,7 +148,7 @@ const OptionsPage = () => { setTimeout(() => { window.close() }, 3000) - }, [dispatch, sendExtension, sidePanelValue, autoInsertValue, autoExpandValue, apiKeyValue, serverUrlValue, modelValue, customModelValue, customModelTokensValue, translateEnableValue, languageValue, hideOnDisableAutoTranslateValue, themeValue, transDisplayValue, summarizeEnableValue, summarizeFloatValue, summarizeLanguageValue, wordsValue, fetchAmountValue, fontSizeValue, promptsValue, searchEnabledValue, cnSearchEnabledValue, askEnabledValue]) + }, [dispatch, sendExtension, sidePanelValue, autoInsertValue, autoExpandValue, apiKeyValue, serverUrlValue, modelValue, customModelValue, customModelTokensValue, translateEnableValue, languageValue, hideOnDisableAutoTranslateValue, themeValue, transDisplayValue, summarizeEnableValue, summarizeFloatValue, summarizeLanguageValue, wordsValue, fetchAmountValue, fontSizeValue, promptsValue, searchEnabledValue, cnSearchEnabledValue, askEnabledValue, chapterModeValue]) const onCancel = useCallback(() => { window.close() @@ -207,6 +209,10 @@ const OptionsPage = () => { } + + +
diff --git a/src/typings.d.ts b/src/typings.d.ts index 8e3d2e6..7c0fe07 100644 --- a/src/typings.d.ts +++ b/src/typings.d.ts @@ -30,6 +30,9 @@ interface EnvData { theme?: 'system' | 'light' | 'dark' fontSize?: 'normal' | 'large' + // chapter + chapterMode?: boolean // 是否启用章节模式,undefined/null/true表示启用,false表示禁用 + // search searchEnabled?: boolean cnSearchEnabled?: boolean