* add courses page * add api for courses * add course page * update course type * update client * update course page * refactor courses pages * render chapter content * shadow in course * fix video handler * update style * mark finished examples * fix media player * update locale * finish chapter * refactor * auto update chapter status * audo finish chapter * fix media provider * fix wavesurfer player * update continue btn * refactor chapters & page * minor fix * fix undefined * refactor * refactor * disable sentry in dev * clean markdown format before alignment * refactor * fix regenerate * fix transcription pre-process for `-` connector * upgrade deps * handle no chapters * add llm chat api * create llm chat * display llm message * create message * handle error * generate llm message * display llm datetime * scroll to message * tts for llm message * add course provider * refactor * translate llm message * fix llm chat introduction * refacotr * upgrade deps * refactor style * handle undefined * fix posts * update locales * update courses api * add enrollments count * upgrade yarn * upgrade deps * restore dep to fix package in mac * upgrade deps
31 lines
871 B
TypeScript
31 lines
871 B
TypeScript
import { CheckCircleIcon } from "lucide-react";
|
|
import { Link } from "react-router-dom";
|
|
|
|
export const ChapterCard = (props: {
|
|
chapter: ChapterType;
|
|
active?: boolean;
|
|
}) => {
|
|
const { chapter, active } = props;
|
|
return (
|
|
<Link
|
|
to={`/courses/${chapter.courseId}/chapters/${chapter.sequence}`}
|
|
key={chapter.id}
|
|
className="p-4 border hover:shadow cursor-pointer rounded-lg relative"
|
|
>
|
|
<div className="text-center text-sm font-bold font-mono mb-2">
|
|
# {chapter.sequence}
|
|
</div>
|
|
<div className="text-center font-mono line-clamp-1">{chapter.title}</div>
|
|
<CheckCircleIcon
|
|
className={`absolute top-2 left-2 w-4 h-4 ${
|
|
active
|
|
? "text-yellow-500"
|
|
: chapter.finished
|
|
? "text-green-600"
|
|
: "text-muted-foreground"
|
|
}`}
|
|
/>
|
|
</Link>
|
|
);
|
|
};
|