API: unique filename for gpx, Client: pagination status

This commit is contained in:
Sam
2018-05-11 13:45:54 +02:00
parent 7ef643a2fe
commit 288528716c
5 changed files with 54 additions and 14 deletions

View File

@ -3,8 +3,9 @@ import mpwoApi from '../mwpoApi/activities'
import { history } from '../index'
import { setError } from './index'
export const endPagination = () => ({
type: 'END_PAGINATION'
export const endPagination = status => ({
type: 'END_PAGINATION',
status,
})
export const pushActivities = activities => ({
@ -63,8 +64,9 @@ export const deleteActivity = id => dispatch => mpwoGenericApi
.then(ret => {
if (ret.status === 204) {
history.push('/')
}
} else {
dispatch(setError(`activities: ${ret.status}`))
}
})
.catch(error => dispatch(setError(`activities: ${error}`)))
@ -87,8 +89,9 @@ export const getMoreActivities = page => dispatch => mpwoGenericApi
if (ret.status === 'success') {
if (ret.data.activities.length > 0) {
dispatch(pushActivities(ret.data.activities))
} else {
dispatch(endPagination())
}
if (ret.data.activities.length < 5) {
dispatch(endPagination(true))
}
} else {
dispatch(setError(`activities: ${ret.message}`))

View File

@ -5,7 +5,7 @@ import { connect } from 'react-redux'
import ActivityCard from './ActivityCard'
import Statistics from './Statistics'
import { getData } from '../../actions'
import { getMoreActivities } from '../../actions/activities'
import { endPagination, getMoreActivities } from '../../actions/activities'
class DashBoard extends React.Component {
constructor(props, context) {
@ -19,6 +19,10 @@ class DashBoard extends React.Component {
this.props.loadActivities()
}
componentWillUnmount() {
this.props.resetPaginationStatus(false)
}
render() {
const {
activities, loadMoreActivities, message, paginationEnd, sports
@ -77,6 +81,9 @@ export default connect(
sports: state.sports.data,
}),
dispatch => ({
resetPaginationStatus: () => {
dispatch(endPagination(false))
},
loadActivities: () => {
dispatch(getData('activities', null, 1))
},

View File

@ -24,7 +24,7 @@ const activities = (state = initial.activities, action) => {
case 'END_PAGINATION':
return {
...state,
pagination_end: true
pagination_end: action.status
}
case 'PUSH_ACTIVITIES':
return {