import RegisterArea from './register-area/register-area.vue' import Panel from './panel/panel.vue' import '../scss/main.scss' import { createApp } from 'vue' importAll(require.context('../images', false, /\.(png|jpe?g|svg)$/)) let heroText = document.querySelectorAll(".landing-hero h2,.landing-hero p") let registerToggles = document.querySelectorAll(".register-btn, .register-area\ .cancel-button, .services-cards button") let token = getCookie('XSRF-TOKEN') function importAll(r) { return r.keys().map(r) } function getCookie(name) { var re = new RegExp(name + "=([^;]+)") var value = re.exec(document.cookie) return (value != null) ? unescape(value[1]) : null } function getToken() { return fetch("/sanctum/csrf-cookie", { method: 'GET' }).then( () => { token = getCookie('XSRF-TOKEN') return token }) } function login(event) { getToken().then(fetch("/login", { method: 'POST', headers: {'Content-Type': 'application/json', 'Accept': 'application/json', 'X-XSRF-TOKEN': token}, body: JSON.stringify({"email": document.getElementById("login_email").value, "password": document.getElementById("login_password").value}), }).then(response => { if (response.ok) { window.location.assign("/panel") } else { document.querySelector("#login_form .error").innerText = "Invalid credentials." } })) event.preventDefault() // event.stopPropogation() } //Attempt to resend the verification link function resendLink(event) { fetch("/resend-verification", { method: 'POST', headers: {'Content-Type': 'application/json', 'Accept': 'application/json', 'X-XSRF-TOKEN': token}, }).then(response => { if (response.ok) { event.target.parentNode.getElementsByTagName('h3')[0].innerText = "The link has been resent." } else { event.target.parentNode.getElementsByTagName('h3')[0].innerText = `${response.status} : ${response.statusText}` }}) event.preventDefault(); } function toggleNav() { heroText.forEach(item => { item.classList.toggle("hidden") }) document.querySelector("nav form.login").classList.toggle("active") this.classList.toggle("toggled") } if (window.location.pathname == '/') { document.getElementById('nav_toggle').addEventListener('click', toggleNav) document.querySelector('#login_form button').addEventListener('click', login) const app = createApp(RegisterArea).mount('#app') // app.token = token if (!token) {app.token = getToken()} //Triggers for registration menu for (let i = 0; i < registerToggles.length; i++) { registerToggles[i].addEventListener("click", function() { document.querySelector(".register-area").classList.add("active") app.active = 'register' }) } document.getElementById("forgot-password-btn").onclick = event => { document.querySelector(".register-area").classList.add("active") app.active = 'forgot' event.preventDefault() } //FAQ collapsibles let cols = document.getElementsByClassName("collapsible"); for (let i = 0; i < cols.length; i++) { cols[i].addEventListener("click", function() { this.classList.toggle("active"); }); } } else if (window.location.pathname == '/verify-email') { document.getElementById('resend_verification').addEventListener("click", resendLink) } else if (window.location.pathname == '/panel') { const app = createApp(Panel).mount('#panel') getToken().then(()=> {app.token = token}) window.onhashchange = ()=>{app.active = location.hash} }