import { ChevronDownIcon } from "@heroicons/react/24/outline"; import { SectionDto } from "@nice/common"; import { AnimatePresence, motion } from "framer-motion"; import React, { useMemo } from "react"; import { LectureItem } from "./LectureItem"; import { useParams } from "react-router-dom"; interface SectionItemProps { section: SectionDto; index?: number; isExpanded: boolean; onToggle: (sectionId: string) => void; onLectureClick: (lectureId: string) => void; ref: React.RefObject; } export const SectionItem = React.forwardRef( ({ section, index, isExpanded, onToggle, onLectureClick }, ref) => { const { lectureId } = useParams(); const isReading = useMemo(() => { return (section?.lectures || []) ?.map((lecture) => lecture?.id) .includes(lectureId); }, [lectureId, section]); return (
onToggle(section.id)}>
第{index}章

{section.title}

{section?.lectures?.length}节课 ·

{isReading && ( 正在学习中 )}
{isExpanded && ( {section.lectures.map((lecture) => ( ))} )}
); } );