import { client, navigateTo } from "../../index.js"; import { clear, fill_errors } from "../../utils/formUtils.js"; import AbstractNonAuthentifiedView from "../abstracts/AbstractNonAuthentified.js"; async function register(redirectTo = '/home') { let username = document.getElementById("usernameInput").value; let password = document.getElementById("passwordInput").value; if (username === '' || password === '') { clear("innerHTML", ["username", "password"]); if (username === '') document.getElementById('username').innerHTML = 'This field may not be blank.'; if (password === '') document.getElementById('password').innerHTML = 'This field may not be blank.'; return; } let response_data = await client.account.create(username, password); if (response_data == null) { navigateTo(redirectTo); return; } clear("innerHTML", ["username", "password", 'register']); fill_errors(response_data, "innerHTML"); } export default class extends AbstractNonAuthentifiedView { constructor(params, lastUrlBeforeLogin = '/home') { super(params, "Register", lastUrlBeforeLogin); this.redirectTo = lastUrlBeforeLogin; } async postInit() { let usernameField = document.getElementById('usernameInput'); usernameField.addEventListener('keydown', ev => { if (ev.key === 'Enter') register(this.redirectTo); }); usernameField.focus(); let passwordField = document.getElementById('passwordInput'); passwordField.addEventListener('keydown', ev => { if (ev.key === 'Enter') register(this.redirectTo); }); document.getElementById("registerButton").onclick = _ => register(this.redirectTo); } async getHtml() { return `