import PropTypes from 'prop-types' import { connect } from 'react-redux' import { actions } from 'pubsweet-client' import { withJournal } from 'xpub-journal' import { ConnectPage } from 'xpub-connect' import { withRouter } from 'react-router-dom' import { compose, withContext } from 'recompose' import { selectCurrentUser } from 'xpub-selectors' import { getUserPermissions, newestFirstParseDashboard, } from 'pubsweet-component-faraday-selectors' import { Dashboard } from './' import { priorityFilter, orderFilter, withFiltersHOC } from '../Filters' export default compose( ConnectPage(() => [actions.getCollections(), actions.getUsers()]), connect( state => { const { collections, conversion } = state const currentUser = selectCurrentUser(state) const dashboard = newestFirstParseDashboard(state) const userPermissions = getUserPermissions(state) return { dashboard, conversion, collections, currentUser, userPermissions, } }, dispatch => ({ deleteProject: collection => dispatch(actions.deleteCollection(collection)), }), ), withRouter, withJournal, withFiltersHOC({ priority: priorityFilter, order: orderFilter, }), withContext( { journal: PropTypes.object, currentUser: PropTypes.object, }, ({ journal, currentUser }) => ({ journal, currentUser }), ), )(Dashboard)