Skip to content

Commit

Permalink
fix(popover): fix destroy logic (#549)
Browse files Browse the repository at this point in the history
* fix(popover): fix destroy logic

* fix(popover): don't open if previous popper not destroyed
  • Loading branch information
kevinlee11 committed Jun 15, 2023
1 parent 342344d commit eab4178
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions src/components/Popover/src/Popover.vue
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
v-if="isOpen"
:action-el="actionEl"
:popper-config="popperConfig"
@popover-instance:new-popper="setPopper"
@popover-instance:new-popper="setPopperToDestroy"
>
<!-- @slot Content that will appear in the floating popover -->
<slot name="content" />
Expand Down Expand Up @@ -120,11 +120,12 @@ export default {
* will be pushed into the popoverApi state as the opened popover.
*/
id: getPopoverId(),
currentPopper: undefined,
popperToDestroy: undefined,
actionAPI: {
open(...ignoreElements) {
if (vm.isOpen) {
// Even though popover may be closed, need to wait for
// the popper to be destroyed before re-opening
if (vm.isOpen || Boolean(vm.popperToDestroy)) {
return;
}
Expand All @@ -136,8 +137,6 @@ export default {
},
close() {
this.popperToDestroy = this.currentPopper;
this.currentPopper = undefined;
vm.popoverApi.closePopover();
},
Expand Down Expand Up @@ -214,8 +213,8 @@ export default {
this.actionAPI.toggle(...ignoreElements);
},
setPopper(popper) {
this.currentPopper = popper;
setPopperToDestroy(popper) {
this.popperToDestroy = popper;
},
destroyPopper() {
Expand Down

0 comments on commit eab4178

Please sign in to comment.