feat: implement online classroom page with curriculum sidebar, video player, and announcement system

This commit is contained in:
supalerk-ar66 2026-02-06 12:57:29 +07:00
parent 41089dd5ea
commit 438bc6cd23
2 changed files with 8 additions and 3 deletions

View file

@ -210,6 +210,7 @@ const loadLesson = async (lessonId: number) => {
if (lesson) {
if (!lesson.progress) lesson.progress = {}
lesson.progress.is_completed = true
lesson.is_completed = true // Standardize completion property
break
}
}
@ -372,8 +373,12 @@ const performSaveProgress = async (force: boolean = false, keepalive: boolean =
try {
const res = await saveVideoProgress(lesson.id, maxSec, durationSec, keepalive)
// Handle Completion (Rely on Backend's auto-complete response)
if (res.success && res.data?.is_completed) {
// Handle Completion (Frontend-only strategy: 95% threshold)
// This ensures the checkmark appears at 95% to match backend.
const progressPercentage = durationSec > 0 ? (maxSec / durationSec) : 0
const isCompletedNow = res.success && (res.data?.is_completed || progressPercentage >= 0.95)
if (isCompletedNow) {
markLessonAsCompletedLocally(lesson.id)
if (lesson.progress) lesson.progress.is_completed = true
}