diff --git a/src/app.js b/src/app.js index 65347e6..7d77d30 100644 --- a/src/app.js +++ b/src/app.js @@ -459,6 +459,14 @@ function resetSuccessIndicators() { elements.previewWrapper?.classList.remove("matched"); elements.previewWrapper?.classList.remove("completed-glow"); elements.previewSection?.classList.remove("matched"); + + // Remove completion badge if present + const badge = document.querySelector(".completion-badge"); + if (badge) badge.remove(); + + // Reset Run button text + const runBtnText = elements.runBtn.querySelector("span"); + if (runBtnText) runBtnText.textContent = t("run"); } function updateEditorForMode(mode) { @@ -710,6 +718,17 @@ function resetCode() { // Clear hints and success indicators clearHint(); resetSuccessIndicators(); + + // Update sidebar to remove completed status from this lesson + const sidebarItem = document.querySelector( + `.lesson-list-item[data-module-id="${engineState.module?.id}"][data-lesson-index="${engineState.lessonIndex}"]` + ); + if (sidebarItem) { + sidebarItem.classList.remove("completed"); + } + + // Update progress display + updateProgressDisplay(); } function loadRandomTemplate() { diff --git a/src/impl/LessonEngine.js b/src/impl/LessonEngine.js index bc3781d..d3fc761 100644 --- a/src/impl/LessonEngine.js +++ b/src/impl/LessonEngine.js @@ -555,6 +555,16 @@ export class LessonEngine { this.userCodeMap.delete(lessonKey); this.saveUserCodeToStorage(); + // Remove lesson from completed list + const progress = this.userProgress[this.currentModule.id]; + if (progress?.completed) { + const idx = progress.completed.indexOf(this.currentLessonIndex); + if (idx !== -1) { + progress.completed.splice(idx, 1); + this.saveUserProgress(); + } + } + this.renderPreview(); } }