88 lines
2.3 KiB
React
Raw Normal View History

2017-12-25 18:19:28 +01:00
import React from 'react'
import { Helmet } from 'react-helmet'
2017-12-25 18:19:28 +01:00
import { connect } from 'react-redux'
2018-05-09 10:25:08 +02:00
import ActivityCard from './ActivityCard'
import Statistics from './Statistics'
import { getData } from '../../actions'
import { getMoreActivities } from '../../actions/activities'
2018-05-09 10:25:08 +02:00
2018-01-28 13:01:26 +01:00
class DashBoard extends React.Component {
constructor(props, context) {
super(props, context)
this.state = {
page: 1,
}
}
2018-05-09 10:25:08 +02:00
componentDidMount() {
this.props.loadActivities()
}
2017-12-25 18:19:28 +01:00
render() {
const {
activities, loadMoreActivities, message, paginationEnd, sports
} = this.props
const { page } = this.state
2017-12-25 18:19:28 +01:00
return (
<div>
<Helmet>
<title>mpwo - Dashboard</title>
</Helmet>
2017-12-31 18:43:24 +01:00
<h1 className="page-title">Dashboard</h1>
{message ? (
<code>{message}</code>
) : (
activities.length > 0 ? (
<div className="container">
<div className="row">
<div className="col-md-6">
{activities.map(activity => (
<ActivityCard
activity={activity}
key={activity.id}
sports={sports}
/>
))}
{!paginationEnd &&
<input
type="submit"
className="btn btn-default btn-md btn-block"
value="Load more activities"
onClick={() => {
loadMoreActivities(page + 1)
this.setState({ page: page + 1 })
}}
/>
}
</div>
<div className="col-md-6">
<Statistics />
</div>
2018-05-10 11:36:08 +02:00
</div>
2018-05-09 10:25:08 +02:00
</div>
2018-05-10 11:36:08 +02:00
) : (
'No activities for now'
))}
2017-12-25 18:19:28 +01:00
</div>
)
}
}
export default connect(
state => ({
2018-05-09 10:25:08 +02:00
activities: state.activities.data,
paginationEnd: state.activities.pagination_end,
2018-05-09 10:25:08 +02:00
message: state.message,
sports: state.sports.data,
}),
dispatch => ({
loadActivities: () => {
dispatch(getData('activities', null, 1))
},
loadMoreActivities: page => {
dispatch(getMoreActivities(page))
2018-05-09 10:25:08 +02:00
},
2017-12-25 18:19:28 +01:00
})
2018-01-28 13:01:26 +01:00
)(DashBoard)