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) => {