]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
collapse: extract duplicate code to a function
authorGeoSot <geo.sotis@gmail.com>
Sun, 10 Oct 2021 09:36:18 +0000 (12:36 +0300)
committerXhmikosR <xhmikosr@gmail.com>
Wed, 13 Oct 2021 13:38:27 +0000 (16:38 +0300)
js/src/collapse.js

index 39093c7a2a13daa3afe333c5bee3971eef30751a..f4fa11de405f5ab9bc256665f16e5a63f03ab9a1 100644 (file)
@@ -8,8 +8,8 @@
 import {
   defineJQueryPlugin,
   getElement,
-  getSelectorFromElement,
   getElementFromSelector,
+  getSelectorFromElement,
   reflow,
   typeCheckConfig
 } from './util/index'
@@ -120,9 +120,7 @@ class Collapse extends BaseComponent {
     let activesData
 
     if (this._config.parent) {
-      const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)
-      // remove children if greater depth
-      actives = SelectorEngine.find(SELECTOR_ACTIVES, this._config.parent).filter(elem => !children.includes(elem))
+      actives = this._getFirstLevelChildren(SELECTOR_ACTIVES)
     }
 
     const container = SelectorEngine.findOne(this._selector)
@@ -245,10 +243,9 @@ class Collapse extends BaseComponent {
       return
     }
 
-    const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)
-    const elements = SelectorEngine.find(SELECTOR_DATA_TOGGLE, this._config.parent).filter(elem => !children.includes(elem))
+    const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE)
 
-    for (const element of elements) {
+    for (const element of children) {
       const selected = getElementFromSelector(element)
 
       if (selected) {
@@ -257,6 +254,12 @@ class Collapse extends BaseComponent {
     }
   }
 
+  _getFirstLevelChildren(selector) {
+    const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent)
+    // remove children if greater depth
+    return SelectorEngine.find(selector, this._config.parent).filter(elem => !children.includes(elem))
+  }
+
   _addAriaAndCollapsedClass(triggerArray, isOpen) {
     if (!triggerArray.length) {
       return