Preview: http://dashboards.webkom.co/react/airframe
This commit is contained in:
Tomasz Owczarczyk
2019-08-15 00:54:44 +02:00
parent f975443095
commit 37092d1d6c
626 changed files with 56691 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Input } from 'reactstrap';
import { Consumer } from './context';
class CheckableInput extends React.Component {
static propTypes = {
tag: PropTypes.oneOfType([
PropTypes.func,
PropTypes.string
]),
type: PropTypes.string,
defaultChecked: PropTypes.bool,
toggle: PropTypes.func,
isChecked: PropTypes.bool
};
static defaultProps = {
tag: Input,
type: "checkbox"
};
componentDidMount() {
if (this.props.defaultChecked) {
this.props.toggle(this.props.defaultChecked);
}
}
render() {
const { tag, isChecked, toggle, ...otherProps } = this.props;
const Tag = tag;
return (
<Tag
checked={ isChecked }
onChange={ (e) => { toggle(e.target.checked) } }
{ ...otherProps }
/>
);
}
}
const ContextCheckableInput = (props) => (
<Consumer>
{
(value) => (
<CheckableInput { ...{ ...props, ...value } } />
)
}
</Consumer>
);
export { ContextCheckableInput as CheckableInput };