1 | import React, { Component } from 'react';
|
2 | import PropTypes from 'prop-types';
|
3 | import Dropdown from './Dropdown';
|
4 | import { omit } from './utils';
|
5 |
|
6 | const omitKeys = ['defaultOpen'];
|
7 |
|
8 | export default class UncontrolledDropdown 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(e) {
|
17 | this.setState({ isOpen: !this.state.isOpen });
|
18 | if (this.props.onToggle) {
|
19 | this.props.onToggle(e, !this.state.isOpen);
|
20 | }
|
21 | }
|
22 |
|
23 | render() {
|
24 | return <Dropdown isOpen={this.state.isOpen} toggle={this.toggle} {...omit(this.props, omitKeys)} />;
|
25 | }
|
26 | }
|
27 |
|
28 | UncontrolledDropdown.propTypes = {
|
29 | defaultOpen: PropTypes.bool,
|
30 | onToggle: PropTypes.func,
|
31 | ...Dropdown.propTypes
|
32 | };
|
33 |
|
\ | No newline at end of file |