From b6655ced4435679b0ab463a0713bcca1a2e0e9df Mon Sep 17 00:00:00 2001 From: Michael Czechowski Date: Tue, 30 Dec 2025 21:07:00 +0100 Subject: [PATCH] perf: make module loading synchronous, flip right panel layout - Remove unnecessary async/await from loadModules (static imports) - Move game controls to top of right panel - Move preview header below controls, above preview - Flip inset shadow to top of preview section --- src/app.js | 10 +++++----- src/config/lessons.js | 4 ++-- src/index.html | 24 ++++++++++++------------ src/main.css | 4 ++-- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/app.js b/src/app.js index 26a183d..f84dfe8 100644 --- a/src/app.js +++ b/src/app.js @@ -115,7 +115,7 @@ function toggleExpectedResult() { // ================= LANGUAGE TOGGLE ================= -async function toggleLanguage() { +function toggleLanguage() { const currentLang = getLanguage(); const newLang = currentLang === "en" ? "de" : "en"; @@ -130,7 +130,7 @@ async function toggleLanguage() { const currentModuleId = engineState.module?.id; const currentLessonIndex = engineState.lessonIndex; - const modules = await loadModules(newLang); + const modules = loadModules(newLang); lessonEngine.setModules(modules); renderModuleList(elements.moduleList, modules, selectModule, selectLesson); @@ -261,9 +261,9 @@ function clearLoadingTimeout() { } } -async function initializeModules() { +function initializeModules() { try { - const modules = await loadModules(getLanguage()); + const modules = loadModules(getLanguage()); lessonEngine.setModules(modules); // Use the new renderModuleList function with both callbacks @@ -684,7 +684,7 @@ function init() { loadingTimeout = setTimeout(showLoadingFallback, 3000); // Load modules after editor is ready - initializeModules().catch(console.error); + initializeModules(); // Sidebar controls elements.menuBtn.addEventListener("click", openSidebar); diff --git a/src/config/lessons.js b/src/config/lessons.js index 277a18e..8d46814 100644 --- a/src/config/lessons.js +++ b/src/config/lessons.js @@ -86,9 +86,9 @@ const moduleStoreDE = [ /** * Load all available modules for a given language * @param {string} language - Language code ('en' or 'de') - * @returns {Promise} Promise resolving to array of modules + * @returns {Array} Array of modules */ -export async function loadModules(language = "en") { +export function loadModules(language = "en") { const store = language === "de" ? moduleStoreDE : moduleStoreEN; return store.map((module) => ({ ...module, diff --git a/src/index.html b/src/index.html index 88d0810..fdcac96 100644 --- a/src/index.html +++ b/src/index.html @@ -60,18 +60,6 @@
-
-
-
-
-
-
-
-
- Your Output - -
-
@@ -80,6 +68,18 @@
+
+
+ Your Output + +
+
+
+
+
+
+
+
diff --git a/src/main.css b/src/main.css index 9c3afdf..837f595 100644 --- a/src/main.css +++ b/src/main.css @@ -496,7 +496,7 @@ code, kbd { display: flex; flex-direction: column; min-height: 0; - box-shadow: inset 0 -40px 30px -30px rgba(0, 0, 0, 0.08); + box-shadow: inset 0 40px 30px -30px rgba(0, 0, 0, 0.08); } .preview-header { @@ -607,7 +607,7 @@ code, kbd { align-items: center; padding: var(--spacing-md); background: var(--panel-bg); - border-top: 1px solid var(--border-color); + border-bottom: 1px solid var(--border-color); } /* ================= SIDEBAR ================= */