Files
everyone-can-use-english/enjoy/src/renderer/components/courses/chapter-card.tsx
an-lee 728bfae82f Feat: interactive courses (#736)
* 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
2024-07-11 19:14:40 +08:00

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>
);
};