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:
19
src/app.js
19
src/app.js
@@ -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() {
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user