63 lines
1.4 KiB
React
Raw Normal View History

2019-01-03 11:16:46 +01:00
import { format } from 'date-fns'
import React from 'react'
import { connect } from 'react-redux'
import { getStats } from '../../../actions/stats'
2019-01-04 10:07:24 +01:00
import { formatStats } from '../../../utils/stats'
2019-01-03 11:16:46 +01:00
import StatsChart from './StatsChart'
class Statistics extends React.PureComponent {
componentDidMount() {
this.props.loadActivities(
2019-01-03 11:16:46 +01:00
this.props.user.id,
this.props.statsParams,
)
}
componentDidUpdate(prevProps) {
if (this.props.statsParams !== prevProps.statsParams) {
this.props.loadActivities(
this.props.user.id,
this.props.statsParams,
)
}
}
2019-01-03 11:16:46 +01:00
render() {
const { displayedSports, sports, statistics, statsParams } = this.props
const stats = formatStats(statistics, sports, statsParams, displayedSports)
2019-01-03 11:16:46 +01:00
return (
<>
{Object.keys(statistics).length === 0 ? (
'No workouts'
) : (
<StatsChart
sports={sports}
stats={stats}
/>
2019-01-03 11:16:46 +01:00
)}
</>
)
}
}
export default connect(
state => ({
sports: state.sports.data,
statistics: state.statistics.data,
user: state.user,
}),
dispatch => ({
loadActivities: (userId, data) => {
2019-01-03 11:16:46 +01:00
const dateFormat = 'YYYY-MM-DD'
const params = {
from: format(data.start, dateFormat),
to: format(data.end, dateFormat),
time: data.duration
}
dispatch(getStats(userId, data.type, params))
},
})
)(Statistics)