import React from 'react' import { Helmet } from 'react-helmet' import { connect } from 'react-redux' import { Link } from 'react-router-dom' import ActivityCard from './ActivityCard' import Calendar from './Calendar' import Records from './Records' import Statistics from './Statistics' import UserStatistics from './UserStatistics' import { getOrUpdateData } from '../../actions' import { getMoreActivities } from '../../actions/activities' class DashBoard extends React.Component { constructor(props, context) { super(props, context) this.state = { page: 1, } } componentDidMount() { this.props.loadActivities() } render() { const { activities, loadMoreActivities, message, records, sports, user, } = this.props const paginationEnd = activities.length > 0 ? activities[activities.length - 1].previous_activity === null : true const { page } = this.state return (
FitTrackee - Dashboard {message ? ( {message} ) : ( activities && sports.length > 0 && (
{activities.length > 0 ? ( activities.map(activity => ( )) ) : (
No workouts.{' '} Upload one !
)} {!paginationEnd && ( { loadMoreActivities(page + 1) this.setState({ page: page + 1 }) }} /> )}
) )}
) } } export default connect( state => ({ activities: state.activities.data, message: state.message, records: state.records.data, sports: state.sports.data, user: state.user, }), dispatch => ({ loadActivities: () => { dispatch(getOrUpdateData('getData', 'activities', { page: 1 })) dispatch(getOrUpdateData('getData', 'records')) }, loadMoreActivities: page => { dispatch(getMoreActivities({ page })) }, }) )(DashBoard)