Skip to content

Commit 6f9091c

Browse files
committed
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)
1 parent a2f9981 commit 6f9091c

2 files changed

Lines changed: 29 additions & 0 deletions

File tree

src/app.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,14 @@ function resetSuccessIndicators() {
459459
elements.previewWrapper?.classList.remove("matched");
460460
elements.previewWrapper?.classList.remove("completed-glow");
461461
elements.previewSection?.classList.remove("matched");
462+
463+
// Remove completion badge if present
464+
const badge = document.querySelector(".completion-badge");
465+
if (badge) badge.remove();
466+
467+
// Reset Run button text
468+
const runBtnText = elements.runBtn.querySelector("span");
469+
if (runBtnText) runBtnText.textContent = t("run");
462470
}
463471

464472
function updateEditorForMode(mode) {
@@ -710,6 +718,17 @@ function resetCode() {
710718
// Clear hints and success indicators
711719
clearHint();
712720
resetSuccessIndicators();
721+
722+
// Update sidebar to remove completed status from this lesson
723+
const sidebarItem = document.querySelector(
724+
`.lesson-list-item[data-module-id="${engineState.module?.id}"][data-lesson-index="${engineState.lessonIndex}"]`
725+
);
726+
if (sidebarItem) {
727+
sidebarItem.classList.remove("completed");
728+
}
729+
730+
// Update progress display
731+
updateProgressDisplay();
713732
}
714733

715734
function loadRandomTemplate() {

src/impl/LessonEngine.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,16 @@ export class LessonEngine {
555555
this.userCodeMap.delete(lessonKey);
556556
this.saveUserCodeToStorage();
557557

558+
// Remove lesson from completed list
559+
const progress = this.userProgress[this.currentModule.id];
560+
if (progress?.completed) {
561+
const idx = progress.completed.indexOf(this.currentLessonIndex);
562+
if (idx !== -1) {
563+
progress.completed.splice(idx, 1);
564+
this.saveUserProgress();
565+
}
566+
}
567+
558568
this.renderPreview();
559569
}
560570
}

0 commit comments

Comments
 (0)