Skip to content

Commit 093ff1e

Browse files
committed
IMP: handle case for dialog methods
1 parent c952c18 commit 093ff1e

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/dialog.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,24 @@ export default function (Alpine) {
1818

1919
el.addEventListener("keydown", escapeDialog);
2020
el.addEventListener("mousedown", backdropDialog);
21+
el.addEventListener("submit", methodDialog);
2122

2223
function scrollLock(use = true) {
2324
document.body.style.overflow = use ? "hidden" : "";
2425
}
2526

27+
// Also update the AlpineJs logic when the native close is triggered
28+
// by the method=dialog or formmethod=dialog
29+
function methodDialog(event) {
30+
if (
31+
event.target.getAttribute("method") === "dialog" ||
32+
(event.submitter &&
33+
event.submitter.getAttribute("formmethod") === "dialog")
34+
) {
35+
evaluate();
36+
}
37+
}
38+
2639
// Prevent native escape for AlpineJs logic
2740
function escapeDialog(event) {
2841
if (event.key !== "Escape") return;
@@ -57,6 +70,7 @@ export default function (Alpine) {
5770
cleanup(() => {
5871
el.removeEventListener("keydown", escapeDialog);
5972
el.removeEventListener("mousedown", backdropDialog);
73+
el.removeEventListener("submit", methodDialog);
6074
scrollLock(false);
6175
});
6276
}

0 commit comments

Comments
 (0)