From 49f6319cdef7a876b52f48a3cfbd8bc6e5e256fd Mon Sep 17 00:00:00 2001 From: ilhan Date: Fri, 15 May 2020 14:05:12 +0300 Subject: [PATCH] fix(ui5-popover): close popup when no opener --- packages/main/src/Popover.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/main/src/Popover.js b/packages/main/src/Popover.js index 7574abc19a48..8053428390b3 100644 --- a/packages/main/src/Popover.js +++ b/packages/main/src/Popover.js @@ -379,6 +379,13 @@ class Popover extends Popup { return (limits[placement] < 0 || (limits[placement] + threshold > closedPopupParent.innerHeight)) || overflowsBottom || overflowsTop; } + shouldCloseDueToNoOpener(openerRect) { + return openerRect.top === 0 + && openerRect.bottom === 0 + && openerRect.left === 0 + && openerRect.right === 0; + } + reposition() { const popoverSize = this.popoverSize; const openerRect = this._opener.getBoundingClientRect(); @@ -459,7 +466,7 @@ class Popover extends Popup { const placementType = this.getActualPlacementType(targetRect, popoverSize); - this._preventRepositionAndClose = this.shouldCloseDueToOverflow(placementType, targetRect); + this._preventRepositionAndClose = this.shouldCloseDueToNoOpener(targetRect) || this.shouldCloseDueToOverflow(placementType, targetRect); const isVertical = placementType === PopoverPlacementType.Top || placementType === PopoverPlacementType.Bottom;