openreplay/frontend/app/components/hocs/withEnumToggle.js
2021-05-01 15:12:01 +05:30

20 lines
492 B
JavaScript

const withEnumToggle = (stateName = 'active', handlerName = 'setActive', initial) => BaseComponent =>
class extends React.Component {
state = {
active: initial,
};
setActive = state => this.setState({
active: state,
})
render() {
const newProps = {
[ handlerName ]: this.setActive,
[ stateName ]: this.state.active,
};
return <BaseComponent { ...newProps } { ...this.props } />;
}
};
export default withEnumToggle;