"use client"; import { useCallback, useEffect, useState } from "react"; import { generateVideoPoster } from "./videoPoster"; type Lesson = { id: string; title: string; duration: string; videoUrl?: string; }; type Props = { lesson: Lesson; completed?: boolean; onComplete?: () => void; }; export function VideoCard({ lesson, completed = false, onComplete }: Props) { const [poster, setPoster] = useState(null); useEffect(() => { setPoster(generateVideoPoster(lesson.title, lesson.id)); }, [lesson.title, lesson.id]); const handleEnded = useCallback(() => { onComplete?.(); }, [onComplete]); return (
{/* 三级标题:视频上方,突出显示 */}
{lesson.id}

{lesson.title}

{lesson.duration} {completed && ( )}
); }