Skip to content

CDropdown computes popper on stale element #483

Description

@aidanlister

Hello, we found the need to patch popper like so so that dropdowns don't compuete their popper location on stale elements.

diff --git a/dist/esm/components/dropdown/CDropdown.js b/dist/esm/components/dropdown/CDropdown.js
index 6c00d1c38d0c14b765427f6b842f2ec34cc236f9..1e040682c7db0ea1cc64d77e9908ffcad628d560 100644
--- a/dist/esm/components/dropdown/CDropdown.js
+++ b/dist/esm/components/dropdown/CDropdown.js
@@ -54,15 +54,12 @@ var CDropdown = forwardRef(function (_a, ref) {
         if (allowPopperUse && menuElement && toggleElement && _visible) {
             initPopper(toggleElement, menuElement, computedPopperConfig);
         }
-    }, [dropdownToggleElement]);
+    }, [_visible, dropdownToggleElement]);
     var handleShow = function () {
         var toggleElement = dropdownToggleElement;
         var menuElement = dropdownMenuRef.current;
         if (toggleElement && menuElement) {
             setVisible(true);
-            if (allowPopperUse) {
-                initPopper(toggleElement, menuElement, computedPopperConfig);
-            }
             toggleElement.focus();
             toggleElement.addEventListener('keydown', handleKeydown);
             menuElement.addEventListener('keydown', handleKeydown);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions