collect-system/apps/web/src/components/models/course/detail/CourseSyllabus/LectureItem.tsx

41 lines
1.2 KiB
TypeScript
Raw Normal View History

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
);