import { createRoom, joinRoom } from "../services/classroom.js";
import { generateMonsterSVG, MONSTER_DEFS } from "../utils/monsterUtils.js";
export function renderLandingView() {
// Select Decor Monsters
// Left: Genesis Dragon (L3_AAA), Right: Gundam (L3_BAA) - or fallbacks
const mLeft = MONSTER_DEFS.find(m => m.id === 'L3_AAA') || MONSTER_DEFS.find(m => m.stage === 3);
const mRight = MONSTER_DEFS.find(m => m.id === 'L3_BAA') || MONSTER_DEFS.find(m => m.stage === 3);
const svgLeft = generateMonsterSVG(mLeft);
const svgRight = generateMonsterSVG(mRight);
return `
VIBECODING-怪獸成長營
`;
}
export function setupLandingEvents(navigateTo) {
const joinBtn = document.getElementById('join-btn');
const instructorBtn = document.getElementById('instructor-mode-btn');
joinBtn.addEventListener('click', async () => {
const roomCode = document.getElementById('room-code-input').value.trim();
const nickname = document.getElementById('nickname-input').value.trim();
if (!roomCode || !nickname) {
alert('請輸入教室代碼和暱稱');
return;
}
try {
joinBtn.textContent = '加入中...';
joinBtn.disabled = true;
const studentId = await joinRoom(roomCode, nickname);
// Save Session
localStorage.setItem('vibecoding_user_id', studentId);
localStorage.setItem('vibecoding_room_code', roomCode);
localStorage.setItem('vibecoding_nickname', nickname);
navigateTo('student');
} catch (error) {
alert('加入失敗: ' + error.message);
joinBtn.textContent = '進入教室';
joinBtn.disabled = false;
}
});
instructorBtn.addEventListener('click', () => {
// Clear any previous admin referer to ensure clean state
localStorage.removeItem('vibecoding_admin_referer');
navigateTo('instructor');
});
}