Skip to content

Commit d527a67

Browse files
committed
fix(Dropdown): use ref forwarding (#4338)
1 parent f7dd938 commit d527a67

File tree

3 files changed

+288
-256
lines changed

3 files changed

+288
-256
lines changed

src/modules/Dropdown/Dropdown.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,11 @@ function renderItemContent(item) {
6464
* @see Select
6565
* @see Menu
6666
*/
67-
export default class Dropdown extends Component {
67+
const Dropdown = React.forwardRef((props, ref) => {
68+
return <DropdownInner {...props} innerRef={ref} />
69+
})
70+
71+
class DropdownInner extends Component {
6872
searchRef = createRef()
6973
sizerRef = createRef()
7074
ref = createRef()
@@ -1431,6 +1435,7 @@ Dropdown.propTypes = {
14311435
wrapSelection: PropTypes.bool,
14321436
}
14331437

1438+
Dropdown.displayName = 'Dropdown'
14341439
Dropdown.defaultProps = {
14351440
additionLabel: 'Add ',
14361441
additionPosition: 'top',
@@ -1448,11 +1453,18 @@ Dropdown.defaultProps = {
14481453
wrapSelection: true,
14491454
}
14501455

1451-
Dropdown.autoControlledProps = ['open', 'searchQuery', 'selectedLabel', 'value', 'upward']
1456+
DropdownInner.autoControlledProps = ['open', 'searchQuery', 'selectedLabel', 'value', 'upward']
1457+
1458+
if (process.env.NODE_ENV !== 'production') {
1459+
DropdownInner.defaultProps = Dropdown.defaultProps
1460+
DropdownInner.propTypes = Dropdown.propTypes
1461+
}
14521462

14531463
Dropdown.Divider = DropdownDivider
14541464
Dropdown.Header = DropdownHeader
14551465
Dropdown.Item = DropdownItem
14561466
Dropdown.Menu = DropdownMenu
14571467
Dropdown.SearchInput = DropdownSearchInput
14581468
Dropdown.Text = DropdownText
1469+
1470+
export default Dropdown

0 commit comments

Comments
 (0)