import React from 'react'; import { Camera } from 'lucide-react'; import { TypewriterText } from './common/TypewriterText'; import { ContentCard } from './common/ContentCard'; import { SkeletonCard } from './common/SkeletonCard'; import { IconLoading } from './common/IconLoading'; interface StoryboardContent { shotLanguage?: Array<{ id: string; stableId: string; type: string; purpose: string; usage: string; }>; composition?: { stableId: string; principles: string; aesthetics: string; framing: string; }; cameraMovement?: Array<{ id: string; stableId: string; type: string; purpose: string; application: string; }>; visualNarrative?: { stableId: string; logic: string; progression: string; emphasis: string; }; editingPoints?: Array<{ id: string; stableId: string; moment: string; cut: string; }>; } interface StoryboardArtistProps { currentContent: StoryboardContent; isPlaying: boolean; } const StoryboardArtist: React.FC = ({ currentContent, isPlaying }) => { return (
{/* 左侧:镜头语言和构图美学 */}
{/* 镜头语言选择 */}

镜头语言选择

{currentContent.shotLanguage && currentContent.shotLanguage.length > 0 ? ( currentContent.shotLanguage.map((shot) => (
{shot.type} {shot.purpose}
)) ) : ( Array.from({length: 4}, (_, i) => ( )) )}
{/* 构图美学运用 */}

构图美学运用

{currentContent.composition ? (
构图原则
美学表达
画面框架
) : (
{Array.from({length: 3}, (_, i) => ( ))}
)}
{/* 右侧:摄影机运动和叙事逻辑 */}
{/* 摄影机运动设计 */}

摄影机运动设计

{currentContent.cameraMovement ? ( currentContent.cameraMovement.map((move) => (
{move.type}
)) ) : ( Array.from({length: 3}, (_, i) => ( )) )}
{/* 视觉叙事逻辑 */}

视觉叙事逻辑

{currentContent.visualNarrative ? (
叙事逻辑
推进节奏
重点强调
) : (
{Array.from({length: 3}, (_, i) => ( ))}
)}
{/* 剪辑点预设 */}

剪辑点预设

{currentContent.editingPoints ? ( currentContent.editingPoints.map((point) => (
{point.moment}
)) ) : ( Array.from({length: 4}, (_, i) => ( )) )}
); }; export default StoryboardArtist;