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,45 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Provider } from './context';
class Checkable extends React.Component {
static propTypes = {
children: PropTypes.node.isRequired,
tag: PropTypes.oneOfType([
PropTypes.func,
PropTypes.string
])
};
static defaultProps = {
tag: "div"
};
constructor(props) {
super(props);
this.state = {
isChecked: false
};
}
render() {
const { tag, children, ...otherProps } = this.props;
const Tag = this.props.tag;
return (
<Provider
value={{
isChecked: this.state.isChecked,
toggle: (enabled) => { this.setState({ isChecked: enabled || !this.state.isChecked }) }
}}
>
<Tag { ...otherProps }>
{ children }
</Tag>
</Provider>
);
}
}
export { Checkable };