From e829c39d51d1d4b6b057307049764f7a1146f242 Mon Sep 17 00:00:00 2001 From: Luke Bennett Date: Fri, 23 Mar 2018 19:13:54 +0000 Subject: [PATCH] Tidy timeout and add jquery --- app/assets/javascripts/shared/popover.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/shared/popover.js b/app/assets/javascripts/shared/popover.js index 48894c2b100..ae4bfa1c916 100644 --- a/app/assets/javascripts/shared/popover.js +++ b/app/assets/javascripts/shared/popover.js @@ -1,3 +1,5 @@ +import $ from 'jquery'; + export default class Popover { constructor(trigger, content) { this.isOpen = false; @@ -41,13 +43,15 @@ export default class Popover { } closePopoverMouseleave() { - setTimeout(() => { - if (this.$popover.is(':hover') || - (this.$popover.siblings('.popover').length > 0 && - this.$popover.siblings('.popover').is(':hover'))) return; + if (this.$popover.is(':hover') || + (this.$popover.siblings('.popover').length > 0 && + this.$popover.siblings('.popover').is(':hover'))) return; - this.closePopover(); - }, 1500); + this.closePopover(); + } + + closePopoverMouseleaveDelayed() { + setTimeout(this.closePopoverMouseleave.bind(this), 1500); } registerClickOpenListener() { @@ -59,8 +63,8 @@ export default class Popover { } registerMouseleaveCloseListener() { - this.$popover.on('mouseleave.glPopover.close', this.closePopoverMouseleave.bind(this)); - this.$popover.siblings('.popover').on('mouseleave.glPopover.close', this.closePopoverMouseleave.bind(this)); + this.$popover.on('mouseleave.glPopover.close', this.closePopoverMouseleaveDelayed.bind(this)); + this.$popover.siblings('.popover').on('mouseleave.glPopover.close', this.closePopoverMouseleaveDelayed.bind(this)); } destroyMouseleaveCloseListener() {