From: Dmitry Date: Thu, 12 Sep 2024 07:45:08 +0000 (+0200) Subject: Fix popover remaining open when toggled after being shown (#40803) X-Git-Tag: v5.3.4~75 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fecd219983539aa0110a7e09d31b8aa4d5fb4348;p=thirdparty%2Fbootstrap.git Fix popover remaining open when toggled after being shown (#40803) Co-authored-by: Dmitry Sergienko Co-authored-by: Julien Déramond --- diff --git a/js/src/tooltip.js b/js/src/tooltip.js index 92d4553493..097477f7a1 100644 --- a/js/src/tooltip.js +++ b/js/src/tooltip.js @@ -160,7 +160,6 @@ class Tooltip extends BaseComponent { return } - this._activeTrigger.click = !this._activeTrigger.click if (this._isShown()) { this._leave() return diff --git a/js/tests/unit/popover.spec.js b/js/tests/unit/popover.spec.js index ba38ebe066..1c81ba7927 100644 --- a/js/tests/unit/popover.spec.js +++ b/js/tests/unit/popover.spec.js @@ -56,6 +56,26 @@ describe('Popover', () => { }) describe('show', () => { + it('should toggle a popover after show', () => { + return new Promise(resolve => { + fixtureEl.innerHTML = 'BS twitter' + + const popoverEl = fixtureEl.querySelector('a') + const popover = new Popover(popoverEl) + + popoverEl.addEventListener('shown.bs.popover', () => { + expect(document.querySelector('.popover')).not.toBeNull() + popover.toggle() + }) + popoverEl.addEventListener('hidden.bs.popover', () => { + expect(document.querySelector('.popover')).toBeNull() + resolve() + }) + + popover.show() + }) + }) + it('should show a popover', () => { return new Promise(resolve => { fixtureEl.innerHTML = 'BS twitter'