// retoor 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 }); } } }