Преглед изворни кода

Fix dropdown not closing when multi-selecting mode

After clicking items in a multiple selection dropdown, it would no
longer close.
Sergiu Miclea пре 6 година
родитељ
комит
2f97125cfe
1 измењених фајлова са 7 додато и 3 уклоњено
  1. 7 3
      src/components/molecules/Dropdown/Dropdown.jsx

+ 7 - 3
src/components/molecules/Dropdown/Dropdown.jsx

@@ -410,11 +410,14 @@ class Dropdown extends React.Component<Props, State> {
   }
 
   handleItemClick(item: any) {
+    const resetFocus = () => {
+      this.ignoreFocusHandler = true
+      this.wrapperRef.focus()
+      setTimeout(() => { this.ignoreFocusHandler = false }, 100)
+    }
     if (!this.props.multipleSelection) {
       this.setState({ showDropdownList: false, firstItemHover: false }, () => {
-        this.ignoreFocusHandler = true
-        this.wrapperRef.focus()
-        setTimeout(() => { this.ignoreFocusHandler = false }, 100)
+        resetFocus()
       })
     } else {
       let selected = Boolean(this.props.selectedItems && this.props.selectedItems.find(i =>
@@ -424,6 +427,7 @@ class Dropdown extends React.Component<Props, State> {
         this.checkmarkRefs[`${this.getLabel(item)}-${this.getValue(item) || ''}`],
         selected
       )
+      resetFocus()
     }
 
     if (this.props.onChange) {