Skip to content

Commit ce47264

Browse files
committed
chore(async-stack): enhance-dialog - calling item.resolve should close dialog
1 parent e0c6b12 commit ce47264

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

.changeset/hot-plums-pull.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@svelte-put/async-stack': patch
3+
---
4+
5+
fix issue when using `enhanceDialog` and calling `item.resolve` does not close the dialog

packages/async-stack/src/helpers/enhance-dialog.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,17 @@ export function enhanceDialog(item, options) {
3333
/** @type {undefined | (() => void)} */
3434
let resumeResolution = undefined;
3535
if (options?.delayResolution) {
36-
item.onResolve(() => new Promise((resolve) => (resumeResolution = resolve)));
36+
item.onResolve(
37+
() =>
38+
new Promise((resolve) => {
39+
if (dialog.open) {
40+
// user calls `item.resolve(...)`
41+
dialog.removeEventListener('close', onclose);
42+
dialog.close();
43+
}
44+
resumeResolution = resolve;
45+
}),
46+
);
3747
}
3848
function onanimationend() {
3949
if (dialog.open) return;

0 commit comments

Comments
 (0)