diff --git a/apps/web/src/pages/generate/components/GenerateStepContent.tsx b/apps/web/src/pages/generate/components/GenerateStepContent.tsx index 85484f982..937f1b5c7 100644 --- a/apps/web/src/pages/generate/components/GenerateStepContent.tsx +++ b/apps/web/src/pages/generate/components/GenerateStepContent.tsx @@ -1,5 +1,5 @@ /** - * GeneratePage 步骤内容渲染(#1899 简化为 5 步) + * GeneratePage 步骤内容渲染(#1899 简化为 5 步,#1913 传递 selectedTemplate) * 步骤顺序:素材(1) → 配音(2) → 标题(3) → 确认生成(4) → 封面(5) * 步骤3预览(Canvas 网格)与步骤4进度(批量渲染网格)由 GeneratePage 直接渲染在左侧大区域。 */ @@ -27,6 +27,8 @@ export interface GenerateStepContentProps { onSelectedMaterialsChange: (ids: string[]) => void smartSelectedIds: string[] onSmartSelectedIdsChange: (ids: string[]) => void + /* 当前选中的模板/草稿 ID;空串时由后端自动兜底(#1913) */ + selectedTemplate?: string /* 标题 */ titleSettings: TitleSettings onTitleSettingsChange: (settings: TitleSettings) => void @@ -87,6 +89,7 @@ export const GenerateStepContent: React.FC = (props) = onSelectedMaterialsChange, smartSelectedIds, onSmartSelectedIdsChange, + selectedTemplate, titleSettings, onTitleSettingsChange, onUpdatePosition, @@ -124,6 +127,15 @@ export const GenerateStepContent: React.FC = (props) = selectedVariantIds, } = props + // #1913:包装 onServerClipsChange,适配 hook 的 (clips, templateId?) 签名 + // 如果 hook 传回了后端兜底创建的 templateId,同时通知外层更新 selectedTemplate + const handleClipsChange = React.useCallback( + (clips: EditPlanClip[], _templateId?: string) => { + onServerClipsChange(clips) + }, + [onServerClipsChange], + ) + switch (currentStep) { case 1: return ( @@ -136,7 +148,8 @@ export const GenerateStepContent: React.FC = (props) = onSmartSelectedIdsChange={onSmartSelectedIdsChange} clipCount={clipCount} onClipCountChange={onClipCountChange} - onServerClipsChange={onServerClipsChange} + selectedTemplate={selectedTemplate} + onServerClipsChange={handleClipsChange} /> ) case 2: