From f7892df9fc65abcb970b9e749f11cd74ad316f11 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Tue, 4 Aug 2026 14:41:39 +0800 Subject: [PATCH] feat(title): add autoGenerateTitle for AI auto-select mode --- .../useStep4Title/useAiTitleGenerator.ts | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/apps/web/src/pages/generate/hooks/useStep4Title/useAiTitleGenerator.ts b/apps/web/src/pages/generate/hooks/useStep4Title/useAiTitleGenerator.ts index 0e2f778bd..8f5b1c5c0 100644 --- a/apps/web/src/pages/generate/hooks/useStep4Title/useAiTitleGenerator.ts +++ b/apps/web/src/pages/generate/hooks/useStep4Title/useAiTitleGenerator.ts @@ -72,9 +72,28 @@ export function useAiTitleGenerator({ setAiTitleGenerating(false) }, [aiTitleInput]) + /** + * 自动生成标题(供 AI 自动选择开关使用) + * 如果已有生成结果,直接从中选一个;否则用默认关键词生成 + */ + const autoGenerateTitle = useCallback((): string => { + if (aiTitleResults.length > 0) { + const picked = aiTitleResults[Math.floor(Math.random() * aiTitleResults.length)] + onTitleSettingsChange({ ...titleSettings, title: picked.title }) + return picked.title + } + // 没有已有结果,用默认关键词生成 + const results = generateTitlesFromTopic("短视频") + setAiTitleResults(results) + setHasGeneratedTitles(true) + const picked = results[Math.floor(Math.random() * results.length)] + onTitleSettingsChange({ ...titleSettings, title: picked.title }) + return picked.title + }, [aiTitleResults, titleSettings, onTitleSettingsChange]) + const handleSelectAiTitle = useCallback( (title: string) => { - onTitleSettingsChange({ ...titleSettings, title, aiAutoSelect: false }) + onTitleSettingsChange({ ...titleSettings, title }) message.success("已选用此标题") }, [titleSettings, onTitleSettingsChange], @@ -98,5 +117,6 @@ export function useAiTitleGenerator({ handleGenerateAiTitles, handleSelectAiTitle, handleRefreshAiTitles, + autoGenerateTitle, } }