From ca5cf50e493c82613a9f15c7c720950ebec8d32d Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 18 Apr 2019 16:23:16 -0500 Subject: [PATCH 1/3] Check to see if overlay is present before spawning another --- packages/ide/src/fill/dialog.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ide/src/fill/dialog.ts b/packages/ide/src/fill/dialog.ts index acee2bdca587..16d38af0ae9f 100644 --- a/packages/ide/src/fill/dialog.ts +++ b/packages/ide/src/fill/dialog.ts @@ -130,7 +130,7 @@ export class Dialog { * Show the dialog. */ public show(): void { - if (!this.cachedActiveElement) { + if (!this.cachedActiveElement && document.getElementsByClassName(this.overlay.className).length === 0) { this.cachedActiveElement = document.activeElement as HTMLElement; (document.querySelector(".monaco-workbench") || document.body).appendChild(this.overlay); document.addEventListener("keydown", this.onKeydown); From 908e1aeeb3860804d6c411131a6f486d6c54668d Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 25 Apr 2019 13:16:22 -0500 Subject: [PATCH 2/3] Refactor --- packages/ide/src/fill/dialog.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/ide/src/fill/dialog.ts b/packages/ide/src/fill/dialog.ts index 16d38af0ae9f..805832b2b316 100644 --- a/packages/ide/src/fill/dialog.ts +++ b/packages/ide/src/fill/dialog.ts @@ -130,7 +130,10 @@ export class Dialog { * Show the dialog. */ public show(): void { - if (!this.cachedActiveElement && document.getElementsByClassName(this.overlay.className).length === 0) { + if (document.querySelector(`.${this.overlay.className}`)) { + throw new Error ("Save prompt is already open"); + } + if (!this.cachedActiveElement) { this.cachedActiveElement = document.activeElement as HTMLElement; (document.querySelector(".monaco-workbench") || document.body).appendChild(this.overlay); document.addEventListener("keydown", this.onKeydown); From bdb0c2c4220e65ffe347fe8ed4e94d7b285cdc5d Mon Sep 17 00:00:00 2001 From: John McCambridge Date: Thu, 25 Apr 2019 16:48:57 -0500 Subject: [PATCH 3/3] Fix error message --- packages/ide/src/fill/dialog.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ide/src/fill/dialog.ts b/packages/ide/src/fill/dialog.ts index 805832b2b316..c8fd5a302471 100644 --- a/packages/ide/src/fill/dialog.ts +++ b/packages/ide/src/fill/dialog.ts @@ -131,7 +131,7 @@ export class Dialog { */ public show(): void { if (document.querySelector(`.${this.overlay.className}`)) { - throw new Error ("Save prompt is already open"); + throw new Error ("Overlay is already open"); } if (!this.cachedActiveElement) { this.cachedActiveElement = document.activeElement as HTMLElement;