From c6ab97b67e2c715f22a0cbffeae5ba1c1bac82dc Mon Sep 17 00:00:00 2001 From: Michael Czechowski Date: Mon, 22 Dec 2025 10:04:41 +0100 Subject: [PATCH] fix: resolve initialization bugs breaking level indicator and expected preview MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix renderLesson to handle null inputEl (CodeMirror replaces textarea) - Fix renderExpectedPreview to use 'solution' property instead of 'solutionCode' - These fixes restore level indicator, expected preview, and auto-run functionality 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/helpers/renderer.js | 8 ++++---- src/impl/LessonEngine.js | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/helpers/renderer.js b/src/helpers/renderer.js index 9129a99..e468e1e 100644 --- a/src/helpers/renderer.js +++ b/src/helpers/renderer.js @@ -133,10 +133,10 @@ export function renderLesson(titleEl, descriptionEl, taskEl, previewEl, prefixEl // Set task instructions taskEl.innerHTML = lesson.task || ""; - // Set code editor contents - // prefixEl.textContent = lesson.codePrefix || ""; - inputEl.value = lesson.initialCode || ""; - // suffixEl.textContent = lesson.codeSuffix || ""; + // Set code editor contents (if inputEl is provided) + if (inputEl) { + inputEl.value = lesson.initialCode || ""; + } // Clear any existing feedback clearFeedback(); diff --git a/src/impl/LessonEngine.js b/src/impl/LessonEngine.js index 564a01c..ff31d5c 100644 --- a/src/impl/LessonEngine.js +++ b/src/impl/LessonEngine.js @@ -239,7 +239,8 @@ export class LessonEngine { renderExpectedPreview() { if (!this.currentLesson) return; - const solutionCode = this.currentLesson.solutionCode; + // Use 'solution' property from lesson JSON (not 'solutionCode') + const solutionCode = this.currentLesson.solution; if (!solutionCode) { // No solution code provided, hide the expected pane or show placeholder const expectedContainer = document.getElementById("preview-expected");