From 045d15d5cec530cec01552a02a2be29e0da0cc5a Mon Sep 17 00:00:00 2001 From: Dermot Duffy Date: Sat, 24 Jan 2026 21:39:21 -0800 Subject: [PATCH] feat: Escape should dismiss overlay messages (#2324) --- src/components/overlay-message.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/components/overlay-message.ts b/src/components/overlay-message.ts index 590511b9..50db9ac1 100644 --- a/src/components/overlay-message.ts +++ b/src/components/overlay-message.ts @@ -18,11 +18,13 @@ export class AdvancedCameraCardOverlayMessage extends LitElement { super.connectedCallback(); window.addEventListener('click', this._handleOutsideInteraction); window.addEventListener('focusin', this._handleOutsideInteraction); + window.addEventListener('keydown', this._handleKeyDown); } public disconnectedCallback(): void { window.removeEventListener('click', this._handleOutsideInteraction); window.removeEventListener('focusin', this._handleOutsideInteraction); + window.removeEventListener('keydown', this._handleKeyDown); super.disconnectedCallback(); } @@ -125,6 +127,14 @@ export class AdvancedCameraCardOverlayMessage extends LitElement { } }; + protected _handleKeyDown = (ev: KeyboardEvent): void => { + if (ev.key === 'Escape') { + this._dismiss(); + ev.stopPropagation(); + ev.preventDefault(); + } + }; + static get styles(): CSSResultGroup { return unsafeCSS(overlayMessageStyle); }