chayns-components
Version:
A set of beautiful React components for developing chayns® applications.
54 lines (53 loc) • 1.3 kB
JavaScript
/* eslint-disable react/forbid-prop-types */
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import ModeSwitch from './ModeSwitch';
export default class Mode extends Component {
constructor() {
super();
this.updatedMode = mode => {
if (mode && mode.id !== undefined) {
this.setState({
modeId: mode.id
});
}
};
this.state = {
modeId: null
};
ModeSwitch.addChangeListener(this.updatedMode);
}
componentWillUnmount() {
ModeSwitch.removeChangeListener(this.updatedMode);
}
render() {
const {
modeId
} = this.state;
const {
modes,
children,
className,
style
} = this.props;
if (Array.isArray(modes) && (modes.indexOf(modeId) !== -1 || modes.indexOf(-1) !== -1 && !chayns.env.user.isAuthenticated)) {
return /*#__PURE__*/React.createElement("div", {
className: className,
style: style
}, children);
}
return null;
}
}
Mode.propTypes = {
modes: PropTypes.arrayOf(PropTypes.number).isRequired,
children: PropTypes.node.isRequired,
className: PropTypes.string,
style: PropTypes.object
};
Mode.defaultProps = {
className: null,
style: null
};
Mode.displayName = 'Mode';
//# sourceMappingURL=Mode.js.map