1 | import React, { Component } from 'react';
|
2 | import PropTypes from 'prop-types';
|
3 | import ButtonDropdown from './ButtonDropdown';
|
4 | import { omit } from './utils';
|
5 |
|
6 | const omitKeys = ['defaultOpen'];
|
7 |
|
8 | export default class UncontrolledButtonDropdown extends Component {
|
9 | constructor(props) {
|
10 | super(props);
|
11 |
|
12 | this.state = { isOpen: props.defaultOpen || false };
|
13 | this.toggle = this.toggle.bind(this);
|
14 | }
|
15 |
|
16 | toggle() {
|
17 | this.setState((prevState) => ({ isOpen: !prevState.isOpen }));
|
18 | }
|
19 |
|
20 | render() {
|
21 | return (
|
22 | <ButtonDropdown
|
23 | isOpen={this.state.isOpen}
|
24 | toggle={this.toggle}
|
25 | {...omit(this.props, omitKeys)}
|
26 | />
|
27 | );
|
28 | }
|
29 | }
|
30 |
|
31 | UncontrolledButtonDropdown.propTypes = {
|
32 | defaultOpen: PropTypes.bool,
|
33 | ...ButtonDropdown.propTypes,
|
34 | };
|