import { Course, CourseDto, TaxonomySlug } from "@nice/common"; import React, { useContext, useEffect, useMemo } from "react"; import { Image, Typography, Skeleton, Tag } from "antd"; // 引入 antd 组件 import { CourseDetailContext } from "./PostDetailContext"; import { useNavigate, useParams } from "react-router-dom"; import { useStaff } from "@nice/client"; import { useAuth } from "@web/src/providers/auth-provider"; import TermInfo from "@web/src/app/main/path/components/TermInfo"; import { PictureOutlined } from "@ant-design/icons"; export const CourseDetailDescription: React.FC = () => { const { post, canEdit, isLoading, selectedLectureId, setSelectedLectureId, userIsLearning, lecture = null, } = useContext(CourseDetailContext); const { Paragraph } = Typography; const { user } = useAuth(); const { update } = useStaff(); const firstLectureId = useMemo(() => { return (post as CourseDto)?.sections?.[0]?.lectures?.[0]?.id; }, [post]); const navigate = useNavigate(); const { id } = useParams(); return ( //
{isLoading || !post ? ( ) : (
{!selectedLectureId && (
{
}
{ setSelectedLectureId(firstLectureId); if (!userIsLearning) { await update.mutateAsync({ where: { id: user?.id }, data: { learningPosts: { connect: { id: post.id, }, }, }, }); } }} className="absolute rounded-xl top-0 left-0 right-0 bottom-0 z-10 bg-[rgba(0,0,0,0.3)] transition-all duration-300 ease-in-out hover:bg-[rgba(0,0,0,0.7)] cursor-pointer group">
点击进入学习
)}
{"课程简介:"}
{post?.subTitle &&
{post?.subTitle}
}
console.log("展开"), }}> {post?.content}
)}
); };