export function dialog (header, body, onclose = async (result, form) => { }) { const dialog = document.createElement("dialog"); dialog.innerHTML = `

`; dialog.className = "w3-container w3-card w3-border-0"; dialog.querySelector("#prompt").innerText = header; dialog.querySelector("#body").innerHTML = body; dialog.addEventListener("close", async () => { const formElem = dialog.querySelector("form"); const formData = formElem ? new FormData(formElem) : null; await onclose(dialog.returnValue, formData); dialog.parentElement.removeChild(dialog); }); if (!dialog.querySelector("form")) { dialog.querySelector("#confirm").addEventListener("click", async (e) => { e.preventDefault(); dialog.close(e.target.value); }); dialog.querySelector("#cancel").addEventListener("click", async (e) => { e.preventDefault(); dialog.close(e.target.value); }); } document.body.append(dialog); dialog.showModal(); return dialog; } export function alert (message) { const dialog = document.createElement("dialog"); dialog.innerHTML = `

${message}

`; dialog.className = "w3-container w3-card w3-border-0"; document.body.append(dialog); dialog.showModal(); dialog.addEventListener("close", () => { dialog.parentElement.removeChild(dialog); }); return dialog; }