fix: clear completed status when resetting a lesson

- Remove completion badge and reset Run button text in resetSuccessIndicators()
- Remove lesson from completed array in LessonEngine.reset()
- Update sidebar to remove completed class from lesson item
- Update progress display after reset

🤖 Generated with [Claude Code](https://claude.com/claude-code)
This commit is contained in:
2026-01-15 12:37:50 +01:00
parent a2f998195c
commit 6f9091ceb4
2 changed files with 29 additions and 0 deletions

View File

@@ -459,6 +459,14 @@ function resetSuccessIndicators() {
elements.previewWrapper?.classList.remove("matched"); elements.previewWrapper?.classList.remove("matched");
elements.previewWrapper?.classList.remove("completed-glow"); elements.previewWrapper?.classList.remove("completed-glow");
elements.previewSection?.classList.remove("matched"); 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) { function updateEditorForMode(mode) {
@@ -710,6 +718,17 @@ function resetCode() {
// Clear hints and success indicators // Clear hints and success indicators
clearHint(); clearHint();
resetSuccessIndicators(); 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() { function loadRandomTemplate() {

View File

@@ -555,6 +555,16 @@ export class LessonEngine {
this.userCodeMap.delete(lessonKey); this.userCodeMap.delete(lessonKey);
this.saveUserCodeToStorage(); 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(); this.renderPreview();
} }
} }