UNPKG

chayns-components

Version:

A set of beautiful React components for developing chayns® applications.

54 lines (53 loc) 1.3 kB
/* 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