]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Add a helper function to check for showing
authorGeoSot <geo.sotis@gmail.com>
Wed, 9 Jun 2021 22:16:54 +0000 (01:16 +0300)
committerXhmikosR <xhmikosr@gmail.com>
Thu, 29 Jul 2021 13:30:02 +0000 (16:30 +0300)
Also, remove the `isTransitioning()` helper.

js/src/collapse.js

index fcb8be6d7de0b514121382c89794572f314baa39..c15bffa84f8da12cf96dd0882c16983c4efab7cf 100644 (file)
@@ -113,7 +113,7 @@ class Collapse extends BaseComponent {
   // Public
 
   toggle() {
-    if (this._element.classList.contains(CLASS_NAME_SHOW)) {
+    if (this._isShown()) {
       this.hide()
     } else {
       this.show()
@@ -121,7 +121,7 @@ class Collapse extends BaseComponent {
   }
 
   show() {
-    if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
+    if (this._isTransitioning || this._isShown()) {
       return
     }
 
@@ -184,16 +184,16 @@ class Collapse extends BaseComponent {
       })
     }
 
-    this.setTransitioning(true)
+    this._isTransitioning = true
 
     const complete = () => {
+      this._isTransitioning = false
+
       this._element.classList.remove(CLASS_NAME_COLLAPSING)
       this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)
 
       this._element.style[dimension] = ''
 
-      this.setTransitioning(false)
-
       EventHandler.trigger(this._element, EVENT_SHOWN)
     }
 
@@ -205,7 +205,7 @@ class Collapse extends BaseComponent {
   }
 
   hide() {
-    if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
+    if (this._isTransitioning || !this._isShown()) {
       return
     }
 
@@ -229,17 +229,17 @@ class Collapse extends BaseComponent {
         const trigger = this._triggerArray[i]
         const elem = getElementFromSelector(trigger)
 
-        if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {
+        if (elem && !this._isShown(elem)) {
           trigger.classList.add(CLASS_NAME_COLLAPSED)
           trigger.setAttribute('aria-expanded', false)
         }
       }
     }
 
-    this.setTransitioning(true)
+    this._isTransitioning = true
 
     const complete = () => {
-      this.setTransitioning(false)
+      this._isTransitioning = false
       this._element.classList.remove(CLASS_NAME_COLLAPSING)
       this._element.classList.add(CLASS_NAME_COLLAPSE)
       EventHandler.trigger(this._element, EVENT_HIDDEN)
@@ -250,8 +250,8 @@ class Collapse extends BaseComponent {
     this._queueCallback(complete, this._element, true)
   }
 
-  setTransitioning(isTransitioning) {
-    this._isTransitioning = isTransitioning
+  _isShown(element = this._element) {
+    return element.classList.contains(CLASS_NAME_SHOW)
   }
 
   // Private
@@ -296,7 +296,7 @@ class Collapse extends BaseComponent {
       return
     }
 
-    const isOpen = element.classList.contains(CLASS_NAME_SHOW)
+    const isOpen = this._isShown(element)
 
     triggerArray.forEach(elem => {
       if (isOpen) {