openreplay/frontend/app/components/hocs/withToggle.js
Андрей Бабушкин b822b1c067 applied eslint
2025-02-26 20:31:01 +01:00

21 lines
534 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;