From cfe4f5d195d3377dfa6470e90eb48f96992d05b7 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Tue, 4 Aug 2026 14:41:39 +0800 Subject: [PATCH] feat(title): toggleAiAutoSelect triggers auto-generate + inject callback --- .../hooks/useStep4Title/useTitleStyleUpdaters.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/web/src/pages/generate/hooks/useStep4Title/useTitleStyleUpdaters.ts b/apps/web/src/pages/generate/hooks/useStep4Title/useTitleStyleUpdaters.ts index 49ef2685d..da50abba3 100644 --- a/apps/web/src/pages/generate/hooks/useStep4Title/useTitleStyleUpdaters.ts +++ b/apps/web/src/pages/generate/hooks/useStep4Title/useTitleStyleUpdaters.ts @@ -5,6 +5,8 @@ import type { TitleSettings } from "../../types" interface UseTitleStyleUpdatersOptions { titleSettings: TitleSettings onTitleSettingsChange: (settings: TitleSettings) => void + /** AI 自动生成标题函数(由 useStep4Title 从 aiGenerator 注入) */ + autoGenerateTitle?: () => string } /** @@ -14,6 +16,7 @@ interface UseTitleStyleUpdatersOptions { export function useTitleStyleUpdaters({ titleSettings, onTitleSettingsChange, + autoGenerateTitle, }: UseTitleStyleUpdatersOptions) { /** 匹配预设:只用 color/bold/italic/stroke/shadow,不再匹配 size */ const getActivePreset = (settings: TitleSettings): string | null => { @@ -41,8 +44,17 @@ export function useTitleStyleUpdaters({ ) const toggleAiAutoSelect = useCallback(() => { - onTitleSettingsChange({ ...titleSettings, aiAutoSelect: !titleSettings.aiAutoSelect }) - }, [titleSettings, onTitleSettingsChange]) + if (!titleSettings.aiAutoSelect) { + // 打开开关:自动生成标题 + if (autoGenerateTitle) { + autoGenerateTitle() + } + } + onTitleSettingsChange({ + ...titleSettings, + aiAutoSelect: !titleSettings.aiAutoSelect, + }) + }, [titleSettings, onTitleSettingsChange, autoGenerateTitle]) const updatePosition = useCallback( (position: string) => {