From 523c908b20ca84fccf77540da191c9b517ab917e Mon Sep 17 00:00:00 2001 From: Mats Bosson Date: Sun, 29 Mar 2026 04:43:07 +0700 Subject: [PATCH] Fix dismiss idempotency --- packages/core/src/utilities/dismiss/create-dismiss.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/core/src/utilities/dismiss/create-dismiss.ts b/packages/core/src/utilities/dismiss/create-dismiss.ts index 50e05b2..2f51350 100644 --- a/packages/core/src/utilities/dismiss/create-dismiss.ts +++ b/packages/core/src/utilities/dismiss/create-dismiss.ts @@ -44,13 +44,19 @@ export function createDismiss(options: CreateDismissOptions): Dismiss { options.onDismiss(); }; + let attached = false; + const dismiss: Dismiss = { attach() { + if (attached) return; + attached = true; layerStack.push(dismiss); document.addEventListener("keydown", handleKeyDown); document.addEventListener("pointerdown", handlePointerDown); }, detach() { + if (!attached) return; + attached = false; const index = layerStack.indexOf(dismiss); if (index !== -1) layerStack.splice(index, 1); document.removeEventListener("keydown", handleKeyDown);