UNPKG

e-lado

Version:

[![CircleCI](https://circleci.com/gh/sharetribe/sharetribe/tree/master.svg?style=svg)](https://circleci.com/gh/sharetribe/sharetribe/tree/master) [![Dependency Status](https://gemnasium.com/sharetribe/sharetribe.png)](https://gemnasium.com/sharetribe/shar

46 lines (37 loc) 1.51 kB
import { PropTypes } from 'react'; import r from 'r-dom'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import * as FlashNotificationActions from '../../../actions/FlashNotificationActions'; import * as SearchPageActions from '../../../actions/SearchPageActions'; import * as ownPropTypes from '../../../utils/PropTypes'; import SearchPage from './SearchPage'; const SearchPageContainer = ({ actions, routes, ...rest }) => r(SearchPage, { actions, routes, ...rest }); const { shape, func } = PropTypes; SearchPageContainer.propTypes = { actions: shape({ updateCurrentPage: func.isRequired, }).isRequired, routes: ownPropTypes.routes, }; const listingsWithAuthors = (listings, profiles) => listings.map((listing) => { const author = profiles.get(listing.authorId); return listing.set('author', author); }); const mapStateToProps = function mapStateToProps(state) { const listings = listingsWithAuthors(state.listings, state.profiles); return { flashNotifications: state.flashNotifications, searchPage: state.searchPage.set('listings', listings), marketplace: state.marketplace, routes: state.routes, topbar: state.topbar, user: state.user, }; }; const mapDispatchToProps = function mapDispatchToProps(dispatch) { return { actions: bindActionCreators({ ...FlashNotificationActions, ...SearchPageActions }, dispatch) }; }; export default connect(mapStateToProps, mapDispatchToProps)(SearchPageContainer);