From 11e8dbcbfef39c8680aefc524f2d82363bcf224f Mon Sep 17 00:00:00 2001 From: Joren Broekema Date: Mon, 7 Dec 2020 13:11:06 +0100 Subject: [PATCH] fix(overlays): return promises for toggle open and close methods --- .changeset/purple-beers-applaud.md | 5 +++++ packages/overlays/src/OverlayMixin.js | 12 ++++++------ packages/overlays/test/OverlayController.test.js | 2 ++ 3 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 .changeset/purple-beers-applaud.md diff --git a/.changeset/purple-beers-applaud.md b/.changeset/purple-beers-applaud.md new file mode 100644 index 000000000..5cde5ab9e --- /dev/null +++ b/.changeset/purple-beers-applaud.md @@ -0,0 +1,5 @@ +--- +'@lion/overlays': patch +--- + +Return promises for the OverlayMixin toggle, open and close methods, since the OverlayController hiding/showing is asynchronous. diff --git a/packages/overlays/src/OverlayMixin.js b/packages/overlays/src/OverlayMixin.js index 5cb671585..6cf57b475 100644 --- a/packages/overlays/src/OverlayMixin.js +++ b/packages/overlays/src/OverlayMixin.js @@ -325,22 +325,22 @@ export const OverlayMixinImplementation = superclass => /** * Toggles the overlay */ - toggle() { - /** @type {OverlayController} */ (this._overlayCtrl).toggle(); + async toggle() { + await /** @type {OverlayController} */ (this._overlayCtrl).toggle(); } /** * Shows the overlay */ - open() { - /** @type {OverlayController} */ (this._overlayCtrl).show(); + async open() { + await /** @type {OverlayController} */ (this._overlayCtrl).show(); } /** * Hides the overlay */ - close() { - /** @type {OverlayController} */ (this._overlayCtrl).hide(); + async close() { + await /** @type {OverlayController} */ (this._overlayCtrl).hide(); } }; export const OverlayMixin = dedupeMixin(OverlayMixinImplementation); diff --git a/packages/overlays/test/OverlayController.test.js b/packages/overlays/test/OverlayController.test.js index 8325ac890..6374dd39d 100644 --- a/packages/overlays/test/OverlayController.test.js +++ b/packages/overlays/test/OverlayController.test.js @@ -920,9 +920,11 @@ describe('OverlayController', () => { expect(ctrl2.content).to.be.displayed; await ctrl3.show(); + await ctrl3._showComplete; expect(ctrl3.content).to.be.displayed; await ctrl2.hide(); + await ctrl2._hideComplete; expect(ctrl0.content).to.be.displayed; expect(ctrl1.content).to.be.displayed;