import {accountAPI,accountToken,saveAccountToken} from './account-api.mjs'; const form=document.querySelector('#login-form'),status=document.querySelector('#login-status'),submit=document.querySelector('#login-submit'),switcher=document.querySelector('#login-switch');let signup=false; let url;try{url=new URL(new URLSearchParams(location.search).get('next')||'/',location.origin)}catch{url=new URL('/',location.origin)} const destination=url.origin===location.origin&&!url.pathname.startsWith('/login')?url.pathname+url.search+(url.hash||location.hash):'/'; function finish(){location.replace(destination)} switcher.onclick=()=>{signup=!signup;document.querySelector('#name-field').hidden=!signup;form.elements.name.required=signup;form.elements.password.autocomplete=signup?'new-password':'current-password';form.elements.password.minLength=signup?12:1;document.querySelector('h1').textContent=signup?'Create your account':'Welcome back';document.querySelector('#login-description').textContent=signup?'Use a password of at least 12 characters.':'Sign in to your property workspace.';submit.textContent=signup?'Create account':'Sign in';document.querySelector('#login-switch-prompt').textContent=signup?'Already have an account?':'New to reelS8?';switcher.textContent=signup?'Sign in':'Create an account';status.textContent=''}; form.onsubmit=async e=>{e.preventDefault();submit.disabled=true;status.textContent='';try{const r=await accountAPI('/auth/'+(signup?'signup':'login'),Object.fromEntries(new FormData(form)));saveAccountToken(r.token);finish()}catch(e){status.textContent=e.message}finally{submit.disabled=false}}; try{if(accountToken())await accountAPI('/auth/browser-session',{});await accountAPI('/me');finish()}catch{saveAccountToken('')} const passwordVisibility=document.querySelector('#password-visibility'); passwordVisibility.onclick=()=>{const visible=form.elements.password.type==='password';form.elements.password.type=visible?'text':'password';passwordVisibility.textContent=visible?'Hide':'Show';passwordVisibility.setAttribute('aria-label',visible?'Hide password':'Show password');passwordVisibility.setAttribute('aria-pressed',String(visible));};