]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
Do not create a Popper.js instance when we don't need it
authorJohann-S <johann.servoire@gmail.com>
Fri, 27 Oct 2017 07:51:08 +0000 (09:51 +0200)
committerJohann-S <johann.servoire@gmail.com>
Mon, 30 Oct 2017 08:51:57 +0000 (09:51 +0100)
js/src/dropdown.js

index a18f0c28aeea035a58e77314de7b25d66430902a..57ee10ebdddf8a9192d287c03bc221e401a40f54 100644 (file)
@@ -143,22 +143,25 @@ const Dropdown = (($) => {
         return
       }
 
-      /**
-       * Check for Popper dependency
-       * Popper - https://popper.js.org
-       */
-      if (typeof Popper === 'undefined') {
-        throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')
-      }
-
-      let element = this._element
-      // for dropup with alignment we use the parent as popper container
-      if ($(parent).hasClass(ClassName.DROPUP)) {
-        if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
-          element = parent
+      // Disable totally Popper.js for Dropdown in Navbar
+      if (!this._inNavbar) {
+        /**
+         * Check for Popper dependency
+         * Popper - https://popper.js.org
+         */
+        if (typeof Popper === 'undefined') {
+          throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)')
+        }
+        let element = this._element
+        // for dropup with alignment we use the parent as popper container
+        if ($(parent).hasClass(ClassName.DROPUP)) {
+          if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
+            element = parent
+          }
         }
+        this._popper = new Popper(element, this._menu, this._getPopperConfig())
       }
-      this._popper = new Popper(element, this._menu, this._getPopperConfig())
+
 
       // if this is a touch-enabled device we add extra
       // empty mouseover listeners to the body's immediate children;
@@ -185,8 +188,8 @@ const Dropdown = (($) => {
       this._menu = null
       if (this._popper !== null) {
         this._popper.destroy()
+        this._popper = null
       }
-      this._popper = null
     }
 
     update() {
@@ -275,12 +278,6 @@ const Dropdown = (($) => {
         }
       }
 
-      // Disable Popper.js for Dropdown in Navbar
-      if (this._inNavbar) {
-        popperConfig.modifiers.applyStyle = {
-          enabled: !this._inNavbar
-        }
-      }
       return popperConfig
     }