Molodetz blogrol volgens DPP-template
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
// retoor <retoor@molodetz.nl>
|
||||
import { LoadingButton } from "./LoadingButton.js";
|
||||
|
||||
export class FormManager {
|
||||
constructor(dialog) {
|
||||
this.dialog = dialog;
|
||||
document.addEventListener("submit", (event) => this.onSubmit(event), true);
|
||||
}
|
||||
|
||||
async onSubmit(event) {
|
||||
const form = event.target;
|
||||
if (!(form instanceof HTMLFormElement)) {
|
||||
return;
|
||||
}
|
||||
if (form.dataset.confirm && form.dataset.confirmed !== "1") {
|
||||
event.preventDefault();
|
||||
const accepted = await this.dialog.confirm(form.dataset.confirm);
|
||||
if (accepted) {
|
||||
form.dataset.confirmed = "1";
|
||||
form.requestSubmit(event.submitter || undefined);
|
||||
}
|
||||
return;
|
||||
}
|
||||
const button = event.submitter || form.querySelector("[data-loading]");
|
||||
if (button && button.hasAttribute("data-loading")) {
|
||||
LoadingButton.setLoading(button, true);
|
||||
window.addEventListener("pageshow", () => LoadingButton.setLoading(button, false), { once: true });
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user