Skip to content

Commit a7f025a

Browse files
committed
Release v2.0.2
1 parent ba157c7 commit a7f025a

File tree

7 files changed

+44
-22
lines changed

7 files changed

+44
-22
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased]
88

9+
## [2.0.2] - 2025-03-10
10+
### Added
11+
- Support for form method dialog
12+
13+
### Fixed
14+
- Incorrect handeling of the backdrop click event, causing errors with the enter key inside a form
15+
916
## [2.0.0] - 2024-02-21
1017
### Changed
1118
- renamed name from `x-dialog` to `x-htmldialog` to not conflict with Alpine UI name

dist/index.cjs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,17 @@ function dialog_default(Alpine) {
3333
el.style.display = null;
3434
el.hidden = false;
3535
el.style.length === 0 && el.removeAttribute("style");
36+
el.addEventListener("keydown", escapeDialog);
37+
el.addEventListener("mousedown", backdropDialog);
38+
el.addEventListener("submit", methodDialog);
3639
function scrollLock(use = true) {
3740
document.body.style.overflow = use ? "hidden" : "";
3841
}
42+
function methodDialog(event) {
43+
if (event.target.getAttribute("method") === "dialog" || event.submitter && event.submitter.getAttribute("formmethod") === "dialog") {
44+
evaluate();
45+
}
46+
}
3947
function escapeDialog(event) {
4048
if (event.key !== "Escape") return;
4149
event.preventDefault();
@@ -50,20 +58,17 @@ function dialog_default(Alpine) {
5058
el._x_doShow = () => {
5159
if (el.hasAttribute("open")) return;
5260
el.showModal();
53-
document.addEventListener("keydown", escapeDialog);
54-
el.addEventListener("click", backdropDialog);
5561
scrollLock(lockPageScroll);
5662
};
5763
el._x_doHide = () => {
5864
if (!el.hasAttribute("open")) return;
5965
el.close();
60-
document.removeEventListener("keydown", escapeDialog);
61-
el.removeEventListener("click", backdropDialog);
6266
scrollLock(false);
6367
};
6468
cleanup(() => {
65-
document.removeEventListener("keydown", escapeDialog);
66-
el.removeEventListener("click", backdropDialog);
69+
el.removeEventListener("keydown", escapeDialog);
70+
el.removeEventListener("mousedown", backdropDialog);
71+
el.removeEventListener("submit", methodDialog);
6772
scrollLock(false);
6873
});
6974
}

dist/index.js

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,17 @@
99
el.style.display = null;
1010
el.hidden = false;
1111
el.style.length === 0 && el.removeAttribute("style");
12+
el.addEventListener("keydown", escapeDialog);
13+
el.addEventListener("mousedown", backdropDialog);
14+
el.addEventListener("submit", methodDialog);
1215
function scrollLock(use = true) {
1316
document.body.style.overflow = use ? "hidden" : "";
1417
}
18+
function methodDialog(event) {
19+
if (event.target.getAttribute("method") === "dialog" || event.submitter && event.submitter.getAttribute("formmethod") === "dialog") {
20+
evaluate();
21+
}
22+
}
1523
function escapeDialog(event) {
1624
if (event.key !== "Escape") return;
1725
event.preventDefault();
@@ -26,20 +34,17 @@
2634
el._x_doShow = () => {
2735
if (el.hasAttribute("open")) return;
2836
el.showModal();
29-
document.addEventListener("keydown", escapeDialog);
30-
el.addEventListener("click", backdropDialog);
3137
scrollLock(lockPageScroll);
3238
};
3339
el._x_doHide = () => {
3440
if (!el.hasAttribute("open")) return;
3541
el.close();
36-
document.removeEventListener("keydown", escapeDialog);
37-
el.removeEventListener("click", backdropDialog);
3842
scrollLock(false);
3943
};
4044
cleanup(() => {
41-
document.removeEventListener("keydown", escapeDialog);
42-
el.removeEventListener("click", backdropDialog);
45+
el.removeEventListener("keydown", escapeDialog);
46+
el.removeEventListener("mousedown", backdropDialog);
47+
el.removeEventListener("submit", methodDialog);
4348
scrollLock(false);
4449
});
4550
}

dist/index.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.mjs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,17 @@ function dialog_default(Alpine) {
88
el.style.display = null;
99
el.hidden = false;
1010
el.style.length === 0 && el.removeAttribute("style");
11+
el.addEventListener("keydown", escapeDialog);
12+
el.addEventListener("mousedown", backdropDialog);
13+
el.addEventListener("submit", methodDialog);
1114
function scrollLock(use = true) {
1215
document.body.style.overflow = use ? "hidden" : "";
1316
}
17+
function methodDialog(event) {
18+
if (event.target.getAttribute("method") === "dialog" || event.submitter && event.submitter.getAttribute("formmethod") === "dialog") {
19+
evaluate();
20+
}
21+
}
1422
function escapeDialog(event) {
1523
if (event.key !== "Escape") return;
1624
event.preventDefault();
@@ -25,20 +33,17 @@ function dialog_default(Alpine) {
2533
el._x_doShow = () => {
2634
if (el.hasAttribute("open")) return;
2735
el.showModal();
28-
document.addEventListener("keydown", escapeDialog);
29-
el.addEventListener("click", backdropDialog);
3036
scrollLock(lockPageScroll);
3137
};
3238
el._x_doHide = () => {
3339
if (!el.hasAttribute("open")) return;
3440
el.close();
35-
document.removeEventListener("keydown", escapeDialog);
36-
el.removeEventListener("click", backdropDialog);
3741
scrollLock(false);
3842
};
3943
cleanup(() => {
40-
document.removeEventListener("keydown", escapeDialog);
41-
el.removeEventListener("click", backdropDialog);
44+
el.removeEventListener("keydown", escapeDialog);
45+
el.removeEventListener("mousedown", backdropDialog);
46+
el.removeEventListener("submit", methodDialog);
4247
scrollLock(false);
4348
});
4449
}

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@fylgja/alpinejs-dialog",
3-
"version": "2.0.1",
3+
"version": "2.0.2",
44
"description": "Bring the power of AlpineJs to the HTML dialog",
55
"homepage": "https://fylgja.dev/",
66
"author": "Fylgja",

0 commit comments

Comments
 (0)