import PropTypes from "prop-types"; import { PureComponent } from "react"; import { FormattedMessage } from "react-intl"; import ImmutablePropTypes from "react-immutable-proptypes"; import { connect } from "react-redux"; import { fetchTrendingLinks } from "mastodon/actions/trends"; import { DismissableBanner } from "mastodon/components/dismissable_banner"; import { LoadingIndicator } from "mastodon/components/loading_indicator"; import Story from "./components/story"; const mapStateToProps = state => ({ links: state.getIn(["trends", "links", "items"]), isLoading: state.getIn(["trends", "links", "isLoading"]), }); class Links extends PureComponent { static propTypes = { links: ImmutablePropTypes.list, isLoading: PropTypes.bool, dispatch: PropTypes.func.isRequired, }; componentDidMount () { const { dispatch } = this.props; dispatch(fetchTrendingLinks()); } render () { const { isLoading, links } = this.props; const banner = ( ); if (!isLoading && links.isEmpty()) { return (
{banner}
); } return (
{banner} {isLoading ? () : links.map((link, i) => ( ))}
); } } export default connect(mapStateToProps)(Links);