login improvements
This commit is contained in:
@@ -1,3 +1,38 @@
|
||||
import './core/app-telemetry.js';
|
||||
import './components/app-flash-auto-dismiss.js';
|
||||
import './components/app-password-hints.js';
|
||||
|
||||
const focusPrimaryErrorNotice = () => {
|
||||
const errorNotice = document.querySelector(
|
||||
'.notice[data-variant="error"][role="alert"][tabindex="-1"]',
|
||||
);
|
||||
if (!(errorNotice instanceof HTMLElement)) {
|
||||
return;
|
||||
}
|
||||
errorNotice.focus();
|
||||
};
|
||||
|
||||
const lockLoginSubmitButtons = () => {
|
||||
const forms = document.querySelectorAll('form[data-login-submit-lock="1"]');
|
||||
forms.forEach((form) => {
|
||||
if (!(form instanceof HTMLFormElement)) {
|
||||
return;
|
||||
}
|
||||
form.addEventListener('submit', () => {
|
||||
if (form.dataset.submitted === '1') {
|
||||
return;
|
||||
}
|
||||
form.dataset.submitted = '1';
|
||||
form.setAttribute('aria-busy', 'true');
|
||||
const submitButton = form.querySelector('button[type="submit"]');
|
||||
if (!(submitButton instanceof HTMLButtonElement)) {
|
||||
return;
|
||||
}
|
||||
submitButton.disabled = true;
|
||||
submitButton.dataset.submitState = 'loading';
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
focusPrimaryErrorNotice();
|
||||
lockLoginSubmitButtons();
|
||||
|
||||
Reference in New Issue
Block a user