]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Fix toggling modal when clicking on `data-bs-toggle="modal"` (#32691)
authorRohit Sharma <rohit2sharma95@gmail.com>
Wed, 13 Jan 2021 19:59:47 +0000 (01:29 +0530)
committerGitHub <noreply@github.com>
Wed, 13 Jan 2021 19:59:47 +0000 (21:59 +0200)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
js/src/modal.js
js/tests/unit/modal.spec.js

index 87c22943ad7de7bcac4b0c025e0c25c6847e40ab..fe1b5a4c65d19b2833ab3c56648a26ea3be7e5da 100644 (file)
@@ -590,7 +590,7 @@ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (
     data = new Modal(target, config)
   }
 
-  data.show(this)
+  data.toggle(this)
 })
 
 /**
index f645e9892bb4c17af643c5797823eec8126a4d31..a867bec9b632082af412132f77137200e5e99811 100644 (file)
@@ -870,7 +870,7 @@ describe('Modal', () => {
   })
 
   describe('data-api', () => {
-    it('should open modal', done => {
+    it('should toggle modal', done => {
       fixtureEl.innerHTML = [
         '<button type="button" data-bs-toggle="modal" data-bs-target="#exampleModal"></button>',
         '<div id="exampleModal" class="modal"><div class="modal-dialog"></div></div>'
@@ -885,6 +885,15 @@ describe('Modal', () => {
         expect(modalEl.getAttribute('aria-hidden')).toEqual(null)
         expect(modalEl.style.display).toEqual('block')
         expect(document.querySelector('.modal-backdrop')).toBeDefined()
+        setTimeout(() => trigger.click(), 10)
+      })
+
+      modalEl.addEventListener('hidden.bs.modal', () => {
+        expect(modalEl.getAttribute('aria-modal')).toEqual(null)
+        expect(modalEl.getAttribute('role')).toEqual(null)
+        expect(modalEl.getAttribute('aria-hidden')).toEqual('true')
+        expect(modalEl.style.display).toEqual('none')
+        expect(document.querySelector('.modal-backdrop')).toEqual(null)
         done()
       })