/** * * Plugin * */ import React from 'react'; import PropTypes from 'prop-types'; import { Collapse } from 'reactstrap'; import { capitalize, get, isEmpty, map } from 'lodash'; import { FormattedMessage } from 'react-intl'; import Controller from 'components/Controller'; import styles from './styles.scss'; class Plugin extends React.Component { // eslint-disable-line react/prefer-stateless-function state = { collapse: false }; componentWillReceiveProps(nextProps) { if (nextProps.pluginSelected !== this.props.pluginSelected && nextProps.pluginSelected !== this.props.name) { this.context.resetShouldDisplayPoliciesHint(); this.setState({ collapse: false }); } } handleClick = () => { this.props.changePluginSelected(this.props.name); if (!isEmpty(get(this.props.plugin, 'controllers'))) { this.setState({ collapse: !this.state.collapse }); } if (this.state.collapse) { this.context.resetShouldDisplayPoliciesHint(); } } render() { const divStyle = this.state.collapse ? { marginBottom: '.4rem' } : {}; const icon = get(this.context.plugins.toJS(), [this.props.name, 'icon']); return (