import React from 'react'; import PropTypes from 'prop-types'; import { NavLink, withRouter } from 'react-router-dom'; import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; import { connect } from 'react-redux'; import { fetchSuggestions, dismissSuggestion } from '../../../actions/suggestions'; import ImmutablePureComponent from 'react-immutable-pure-component'; import ImmutablePropTypes from 'react-immutable-proptypes'; import Icon from 'gabsocial/components/icon'; import AccountContainer from '../../../containers/account_container'; const messages = defineMessages({ dismissSuggestion: { id: 'suggestions.dismiss', defaultMessage: 'Dismiss suggestion' }, }); class WhoToFollowPanel extends ImmutablePureComponent { static propTypes = { suggestions: ImmutablePropTypes.list.isRequired, fetchSuggestions: PropTypes.func.isRequired, dismissSuggestion: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, }; componentDidMount () { this.props.fetchSuggestions(); } render() { const { intl, suggestions, dismissSuggestion } = this.props; if (suggestions.isEmpty()) { return null; } return (
{suggestions && suggestions.map(accountId => ( ))}
); }; }; const mapStateToProps = state => ({ suggestions: state.getIn(['suggestions', 'items']), }); const mapDispatchToProps = dispatch => { return { fetchSuggestions: () => dispatch(fetchSuggestions()), dismissSuggestion: account => dispatch(dismissSuggestion(account.get('id'))), } }; export default injectIntl( connect(mapStateToProps, mapDispatchToProps, null, { forwardRef: true, } )(WhoToFollowPanel))