diff --git a/apps/web/src/components/models/course/detail/CourseDetailDescription.tsx b/apps/web/src/components/models/course/detail/CourseDetailDescription.tsx
index a7eea6c..e33e445 100755
--- a/apps/web/src/components/models/course/detail/CourseDetailDescription.tsx
+++ b/apps/web/src/components/models/course/detail/CourseDetailDescription.tsx
@@ -1,15 +1,23 @@
import { Course } from "@nice/common";
-import React, { useContext } from "react";
+import React, { useContext, useMemo } from "react";
import { Image, Typography, Skeleton } from "antd"; // 引入 antd 组件
import { CourseDetailContext } from "./CourseDetailContext";
-import { CalendarOutlined, EyeOutlined } from "@ant-design/icons";
+import {
+ CalendarOutlined,
+ EyeOutlined,
+ PlayCircleOutlined,
+} from "@ant-design/icons";
import dayjs from "dayjs";
+import { useNavigate } from "react-router-dom";
export const CourseDetailDescription: React.FC = () => {
- const { course, isLoading, selectedLectureId } =
+ const { course, isLoading, selectedLectureId, setSelectedLectureId } =
useContext(CourseDetailContext);
const { Paragraph, Title } = Typography;
-
+ const firstLectureId = useMemo(() => {
+ return course?.sections?.[0]?.lectures?.[0]?.id;
+ }, [course]);
+ const navigate = useNavigate();
return (
{isLoading || !course ? (
@@ -18,12 +26,19 @@ export const CourseDetailDescription: React.FC = () => {
{!selectedLectureId && (
<>
-
+
+
{
+ setSelectedLectureId(firstLectureId);
+ }}
+ className="w-full h-full absolute top-0 z-10 bg-black opacity-30 transition-opacity duration-300 ease-in-out hover:opacity-70 cursor-pointer">
+
+
>
)}
diff --git a/apps/web/src/components/models/course/detail/CourseSyllabus/LectureItem.tsx b/apps/web/src/components/models/course/detail/CourseSyllabus/LectureItem.tsx
index a79b16e..ed73745 100755
--- a/apps/web/src/components/models/course/detail/CourseSyllabus/LectureItem.tsx
+++ b/apps/web/src/components/models/course/detail/CourseSyllabus/LectureItem.tsx
@@ -7,6 +7,7 @@ import {
FileTextOutlined,
PlayCircleOutlined,
} from "@ant-design/icons"; // 使用 Ant Design 图标
+import { useParams } from "react-router-dom";
interface LectureItemProps {
lecture: Lecture;
@@ -16,25 +17,30 @@ interface LectureItemProps {
export const LectureItem: React.FC
= ({
lecture,
onClick,
-}) => (
- onClick(lecture.id)}>
- {lecture.type === LectureType.VIDEO && (
-
- )}
- {lecture.type === LectureType.ARTICLE && (
-
// 为文章类型添加图标
- )}
-
-
{lecture.title}
- {lecture.subTitle && (
-
{lecture.subTitle}
+}) => {
+ const { lectureId } = useParams();
+ return (
+
onClick(lecture.id)}>
+ {lecture.type === LectureType.VIDEO && (
+
)}
-
- {/*
+ {lecture.type === LectureType.ARTICLE && (
+
// 为文章类型添加图标
+ )}
+
+
{lecture.title}
+ {lecture.subTitle && (
+
+ {lecture.subTitle}
+
+ )}
+
+ {/*
{lecture.duration}分钟
*/}
-
-);
+
+ );
+};