]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Fix popover remaining open when toggled after being shown (#40803)
authorDmitry <dmitrysergienko2000@gmail.com>
Thu, 12 Sep 2024 07:45:08 +0000 (09:45 +0200)
committerGitHub <noreply@github.com>
Thu, 12 Sep 2024 07:45:08 +0000 (09:45 +0200)
Co-authored-by: Dmitry Sergienko <dmitry.sergienko@codefirst.net>
Co-authored-by: Julien Déramond <juderamond@gmail.com>
js/src/tooltip.js
js/tests/unit/popover.spec.js

index 92d455349336050d374e9e0d7ab878c51153b02d..097477f7a1a813387caa92b33f585fb9cc3d07c7 100644 (file)
@@ -160,7 +160,6 @@ class Tooltip extends BaseComponent {
       return
     }
 
-    this._activeTrigger.click = !this._activeTrigger.click
     if (this._isShown()) {
       this._leave()
       return
index ba38ebe0662910268726bd016746646b65e7bce2..1c81ba79279c3f04143b9c6940e1d01e8f6edfeb 100644 (file)
@@ -56,6 +56,26 @@ describe('Popover', () => {
   })
 
   describe('show', () => {
+    it('should toggle a popover after show', () => {
+      return new Promise(resolve => {
+        fixtureEl.innerHTML = '<a href="#" title="Popover" data-bs-content="https://twitter.com/getbootstrap">BS twitter</a>'
+
+        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 = '<a href="#" title="Popover" data-bs-content="https://twitter.com/getbootstrap">BS twitter</a>'