openreplay/frontend/app/components/hocs/withToggle.js
Shekar Siri 2ed5cac986
Webpack upgrade and dependency cleanup (#523)
* change(ui) - webpack update
* change(ui) - api optimize and other fixes
2022-06-03 16:47:38 +02:00

21 lines
566 B
JavaScript

import React from 'react';
const withToggle = (stateName = 'open', handlerName = 'switchOpen', initial = false) => BaseComponent =>
class extends React.Component {
state = {
toggle: initial,
};
onToggle = state => this.setState({
toggle: typeof state === 'boolean' ? state : !this.state.toggle,
})
render() {
const newProps = {
[ handlerName ]: this.onToggle,
[ stateName ]: this.state.toggle,
};
return <BaseComponent { ...newProps } { ...this.props } />;
}
};
export default withToggle;