import { renderLandingView, setupLandingEvents } from './views/LandingView.js'; import { renderInstructorView, setupInstructorEvents } from './views/InstructorView.js'; import { renderStudentView, setupStudentEvents } from './views/StudentView.js'; import { renderAdminView, setupAdminEvents } from './views/AdminView.js'; const app = document.querySelector('#app'); function navigateTo(view) { // Update hash maybe? For now simple switch switch (view) { case 'landing': app.innerHTML = renderLandingView(); setupLandingEvents(navigateTo); break; case 'instructor': app.innerHTML = '載入中...'; // Async render because Instructor view fetches challenges for column headers renderInstructorView().then(html => { app.innerHTML = html; setupInstructorEvents(); }); break; case 'student': app.innerHTML = '載入中...'; // Async render because Student view fetches challenges renderStudentView().then(html => { app.innerHTML = html; setupStudentEvents(); }).catch(err => { console.error("Student View Load Error:", err); app.innerHTML = `
${err.message}