// components/CourseDetailDisplayArea.tsx import { motion, useScroll, useTransform } from "framer-motion"; import React, { useContext, useRef, useState } from "react"; import { VideoPlayer } from "@web/src/components/presentation/video-player/VideoPlayer"; import { CourseDetailDescription } from "./CourseDetailDescription/CourseDetailDescription"; import { Course, LectureType, PostType } from "@nice/common"; import { CourseDetailContext } from "./CourseDetailContext"; import CollapsibleContent from "@web/src/components/common/container/CollapsibleContent"; interface CourseDetailDisplayAreaProps { // course: Course; videoSrc?: string; videoPoster?: string; // isLoading?: boolean; } export const CourseDetailDisplayArea: React.FC< CourseDetailDisplayAreaProps > = ({ videoSrc, videoPoster }) => { // 创建滚动动画效果 const { course, isLoading, lecture } = useContext(CourseDetailContext); const { scrollY } = useScroll(); const videoScale = useTransform(scrollY, [0, 200], [1, 0.8]); const videoOpacity = useTransform(scrollY, [0, 200], [1, 0.8]); const contentWrapperRef = useRef(null); const [isExpanded, setIsExpanded] = useState(false); const [shouldCollapse, setShouldCollapse] = useState(false); return (
{/* 固定的视频区域 */} {/* 移除 sticky 定位,让视频区域随页面滚动 */} {lecture?.meta?.type === LectureType.VIDEO && (
)} {lecture?.meta?.type === LectureType.ARTICLE && (
)} {/* 课程内容区域 */}
); }; export default CourseDetailDisplayArea;