2025-01-08 20:29:07 +08:00
|
|
|
// components/CourseSyllabus/LectureItem.tsx
|
|
|
|
|
2025-02-21 13:14:47 +08:00
|
|
|
import { Lecture, LectureType } from "@nice/common";
|
2025-01-08 20:29:07 +08:00
|
|
|
import React from "react";
|
2025-02-24 08:51:44 +08:00
|
|
|
import {
|
|
|
|
ClockCircleOutlined,
|
|
|
|
FileTextOutlined,
|
|
|
|
PlayCircleOutlined,
|
|
|
|
} from "@ant-design/icons"; // 使用 Ant Design 图标
|
2025-01-08 20:29:07 +08:00
|
|
|
|
|
|
|
interface LectureItemProps {
|
|
|
|
lecture: Lecture;
|
|
|
|
onClick: (lectureId: string) => void;
|
|
|
|
}
|
|
|
|
|
|
|
|
export const LectureItem: React.FC<LectureItemProps> = ({
|
|
|
|
lecture,
|
|
|
|
onClick,
|
|
|
|
}) => (
|
2025-02-21 13:14:47 +08:00
|
|
|
<div
|
|
|
|
className="w-full flex items-center gap-4 p-4 hover:bg-gray-50 text-left transition-colors cursor-pointer"
|
2025-01-08 20:29:07 +08:00
|
|
|
onClick={() => onClick(lecture.id)}>
|
2025-02-21 13:14:47 +08:00
|
|
|
{lecture.type === LectureType.VIDEO && (
|
|
|
|
<PlayCircleOutlined className="w-5 h-5 text-blue-500 flex-shrink-0" />
|
|
|
|
)}
|
|
|
|
{lecture.type === LectureType.ARTICLE && (
|
|
|
|
<FileTextOutlined className="w-5 h-5 text-blue-500 flex-shrink-0" /> // 为文章类型添加图标
|
|
|
|
)}
|
2025-01-08 20:29:07 +08:00
|
|
|
<div className="flex-grow">
|
|
|
|
<h4 className="font-medium text-gray-800">{lecture.title}</h4>
|
2025-02-21 13:14:47 +08:00
|
|
|
{lecture.subTitle && (
|
|
|
|
<p className="text-sm text-gray-500 mt-1">{lecture.subTitle}</p>
|
2025-01-08 20:29:07 +08:00
|
|
|
)}
|
|
|
|
</div>
|
2025-02-24 08:51:44 +08:00
|
|
|
{/* <div className="flex items-center gap-1 text-sm text-gray-500">
|
2025-02-21 13:14:47 +08:00
|
|
|
<ClockCircleOutlined className="w-4 h-4" />
|
2025-01-08 20:29:07 +08:00
|
|
|
<span>{lecture.duration}分钟</span>
|
2025-02-24 08:51:44 +08:00
|
|
|
</div> */}
|
2025-02-21 13:14:47 +08:00
|
|
|
</div>
|
2025-01-08 20:29:07 +08:00
|
|
|
);
|