import { route } from "../router.js"; import { Api } from "../kek.js"; import { saveSession, setTopUser, setLogoutVisible, formToJSON, } from "../utils.js"; function loginView() { const card = document.createElement("div"); card.className = "card"; card.innerHTML = `
Вход
`; const form = card.querySelector("#login-form"); form.addEventListener("submit", async (e) => { e.preventDefault(); const { username, password } = Object.fromEntries(new FormData(form)); try { const { session } = await Api.login({ username, password }); saveSession(session); setTopUser(username); setLogoutVisible(true); location.hash = "#/dashboard"; } catch (err) { const box = card.querySelector("#login-error"); box.classList.remove("hidden"); box.textContent = err.message || "Не удалось войти"; } }); return card; } function registerView() { const card = document.createElement("div"); card.className = "card"; card.innerHTML = `
Регистрация учителя
`; card.querySelector("#reg-form").addEventListener("submit", async (e) => { e.preventDefault(); const payload = formToJSON(e.target); try { await Api.registerTeacher(payload); const msg = card.querySelector("#reg-msg"); msg.classList.remove("hidden"); msg.textContent = "Учитель создан. Теперь можно войти."; card.querySelector("#reg-err").classList.add("hidden"); } catch (err) { const errBox = card.querySelector("#reg-err"); errBox.classList.remove("hidden"); errBox.textContent = err.message || "Ошибка регистрации"; } }); return card; } route("/auth/login", async ({ view }) => { view.appendChild(loginView()); }); route("/auth/register", async ({ view }) => { view.appendChild(registerView()); });