]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Carousel: merge slide functionality, regardless of whether it is animated or not
authorGeoSot <geo.sotis@gmail.com>
Sun, 30 Jan 2022 22:22:33 +0000 (00:22 +0200)
committerXhmikosR <xhmikosr@gmail.com>
Sat, 19 Feb 2022 12:52:36 +0000 (14:52 +0200)
js/src/carousel.js

index 4cb03d51fefe38fe56646abe8f3d436f481d0bb3..00d93049535d7fb562d667a430e267c9db72821e 100644 (file)
@@ -372,39 +372,35 @@ class Carousel extends BaseComponent {
       })
     }
 
-    if (this._element.classList.contains(CLASS_NAME_SLIDE)) {
-      nextElement.classList.add(orderClassName)
+    nextElement.classList.add(orderClassName)
 
-      reflow(nextElement)
+    reflow(nextElement)
 
-      activeElement.classList.add(directionalClassName)
-      nextElement.classList.add(directionalClassName)
+    activeElement.classList.add(directionalClassName)
+    nextElement.classList.add(directionalClassName)
 
-      const completeCallBack = () => {
-        nextElement.classList.remove(directionalClassName, orderClassName)
-        nextElement.classList.add(CLASS_NAME_ACTIVE)
-
-        activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)
-
-        this._isSliding = false
-
-        setTimeout(triggerSlidEvent, 0)
-      }
-
-      this._queueCallback(completeCallBack, activeElement, true)
-    } else {
-      activeElement.classList.remove(CLASS_NAME_ACTIVE)
+    const completeCallBack = () => {
+      nextElement.classList.remove(directionalClassName, orderClassName)
       nextElement.classList.add(CLASS_NAME_ACTIVE)
 
+      activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)
+
       this._isSliding = false
-      triggerSlidEvent()
+
+      setTimeout(triggerSlidEvent, 0)
     }
 
+    this._queueCallback(completeCallBack, activeElement, this._isAnimated())
+
     if (isCycling) {
       this.cycle()
     }
   }
 
+  _isAnimated() {
+    return this._element.classList.contains(CLASS_NAME_SLIDE)
+  }
+
   _getActive() {
     return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)
   }