UNPKG

792 BJavaScriptView Raw
1import React, { Component } from 'react';
2import PropTypes from 'prop-types';
3import Dropdown from './Dropdown';
4import { omit } from './utils';
5
6const omitKeys = ['defaultOpen'];
7
8export 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
28UncontrolledDropdown.propTypes = {
29 defaultOpen: PropTypes.bool,
30 onToggle: PropTypes.func,
31 ...Dropdown.propTypes
32};
33
\No newline at end of file