import { injectIntl, defineMessages } from 'react-intl' import ImmutablePureComponent from 'react-immutable-pure-component' import ImmutablePropTypes from 'react-immutable-proptypes' import { fetchGabTrends } from '../../actions/gab_trends' import PanelLayout from './panel_layout' import ScrollableList from '../scrollable_list' import TrendsItem from '../trends_item' const messages = defineMessages({ title: { id: 'trends.title', defaultMessage: 'Trending right now' }, }) const mapStateToProps = (state) => ({ gabtrends: state.getIn(['gab_trends', 'items']), }) const mapDispatchToProps = (dispatch) => ({ onFetchGabTrends: () => dispatch(fetchGabTrends()), }) export default @connect(mapStateToProps, mapDispatchToProps) @injectIntl class TrendsPanel extends ImmutablePureComponent { static propTypes = { intl: PropTypes.object.isRequired, gabtrends: ImmutablePropTypes.list.isRequired, onFetchGabTrends: PropTypes.func.isRequired, } updateOnProps = [ 'gabtrends', ] componentDidMount() { this.props.onFetchGabTrends() } render() { const { intl, gabtrends } = this.props return ( { gabtrends.slice(0, 8).map((trend, i) => ( )) } ) } }