import { Card, Tag, Typography, Button } from "antd"; import { BookOutlined, EyeOutlined, PlayCircleOutlined, TeamOutlined, } from "@ant-design/icons"; import { CourseDto, PostDto, TaxonomySlug } from "@nice/common"; import { useNavigate } from "react-router-dom"; import { useEffect } from "react"; interface PostCardProps { course?: CourseDto; path?: PostDto } const { Title, Text } = Typography; export default function PostCard({ course = null, path = null }: PostCardProps) { const navigate = useNavigate(); const handleClick = (course: CourseDto) => { if (course) { navigate(`/course/${course.id}/detail`); } else if (path) { navigate(`/path/editor/${path.id}`); } window.scrollTo({ top: 0, behavior: "smooth", }) }; return ( handleClick(course)} key={course?.id} hoverable className="group overflow-hidden rounded-2xl border border-gray-200 bg-white shadow-xl hover:shadow-2xl transition-all duration-300 transform hover:-translate-y-2" cover={
{course && ( <>
)}
}>
{course?.terms?.map((term) => { return ( <> {term.name} ); })}
<button> {course?.title}</button>
{course?.depts?.length > 1 ? `${course.depts[0].name}等` : course?.depts?.[0]?.name} {/* {course?.depts?.map((dept) => {return dept.name.length > 1 ?`${dept.name.slice}等`: dept.name})} */} {/* {course?.depts?.map((dept)=>{return dept.name})} */}
{!course && ( <> {path?.meta?.views ? `观看次数 ${path?.meta?.views}` : null} )}
{course && (
{`观看次数 ${course?.meta?.views || 0}`} {`学习人数 ${course?.studentIds?.length || 0}`}
)}
); }