89 lines
2.4 KiB
TypeScript
Executable File
89 lines
2.4 KiB
TypeScript
Executable File
/**
|
|
* Step 7 确认生成组件
|
|
*/
|
|
import React from "react"
|
|
import type { EditingTemplate } from "@/api/editing-planner"
|
|
import type { GeneratedVideo } from "@/api/template-editor"
|
|
import type { CoverConfig } from "../../editing-planner/types"
|
|
import type { VoiceClone } from "@/api/voice-clone"
|
|
import type { PresetVoiceItem } from "@/api/voices"
|
|
import { useStep7Generate } from "../hooks/useStep7Generate"
|
|
import SummaryCard from "./step7-confirm/SummaryCard"
|
|
import GenerationStatus from "./step7-confirm/GenerationStatus"
|
|
|
|
interface Step7ConfirmGenerateProps {
|
|
templates: EditingTemplate[]
|
|
selectedTemplate: string
|
|
materialMode: "manual" | "auto"
|
|
selectedMaterials: string[]
|
|
smartSelectedIds: string[]
|
|
title: string
|
|
voiceMode: "preset" | "custom" | "clone"
|
|
selectedVoice: string
|
|
selectedClonedVoice: string
|
|
presetVoices: PresetVoiceItem[]
|
|
clonedVoices: VoiceClone[]
|
|
coverSettings: CoverConfig
|
|
generateCount: number
|
|
onGenerateCountChange: (count: number) => void
|
|
generating: boolean
|
|
generated: boolean
|
|
generateError: string | null
|
|
progress: number
|
|
generatedVideos: GeneratedVideo[]
|
|
onRetry: () => void
|
|
onDismissError: () => void
|
|
}
|
|
|
|
const Step7ConfirmGenerate: React.FC<Step7ConfirmGenerateProps> = (props) => {
|
|
const {
|
|
templateName,
|
|
materialSummary,
|
|
title,
|
|
voiceName,
|
|
coverSummary,
|
|
generateCount,
|
|
handleDecrement,
|
|
handleIncrement,
|
|
generating,
|
|
generated,
|
|
generateError,
|
|
progress,
|
|
generatedVideos,
|
|
getGenerationPhase,
|
|
handleScrollToPreview,
|
|
} = useStep7Generate(props)
|
|
|
|
const { onRetry, onDismissError } = props
|
|
|
|
return (
|
|
<div className="xx-form-section">
|
|
<h3>✨ 确认生成</h3>
|
|
<SummaryCard
|
|
templateName={templateName}
|
|
materialSummary={materialSummary}
|
|
title={title}
|
|
voiceName={voiceName}
|
|
coverSummary={coverSummary}
|
|
generateCount={generateCount}
|
|
generating={generating}
|
|
onDecrement={handleDecrement}
|
|
onIncrement={handleIncrement}
|
|
/>
|
|
<GenerationStatus
|
|
generating={generating}
|
|
generated={generated}
|
|
generateError={generateError}
|
|
progress={progress}
|
|
generatedVideos={generatedVideos}
|
|
getGenerationPhase={getGenerationPhase}
|
|
onScrollToPreview={handleScrollToPreview}
|
|
onRetry={onRetry}
|
|
onDismissError={onDismissError}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default Step7ConfirmGenerate
|