import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';

class CloudFeature extends React.Component {
  getChildContext() {
    return {
      store: this.context.serviceStore || this.context.store || {}
    };
  }

  render() {
    if (process.env.WEAVE_CLOUD) {
      return React.cloneElement(React.Children.only(this.props.children), {
        params: this.context.router.params,
        router: this.context.router
      });
    }

    // also show if not in weave cloud?
    if (this.props.alwaysShow) {
      return React.cloneElement(React.Children.only(this.props.children));
    }

    return null;
  }
}

/* eslint-disable react/forbid-prop-types */
// TODO: Remove this component as part of https://github.com/weaveworks/scope/issues/3278.
CloudFeature.contextTypes = {
  router: PropTypes.object,
  serviceStore: PropTypes.object,
  store: PropTypes.object.isRequired
};

CloudFeature.childContextTypes = {
  router: PropTypes.object,
  store: PropTypes.object
};
/* eslint-enable react/forbid-prop-types */

export default connect()(CloudFeature);
