Client - display pagination on workouts list

This commit is contained in:
Sam
2021-11-02 20:26:43 +01:00
parent e8350abf55
commit a8d0680457
16 changed files with 297 additions and 10 deletions

View File

@ -30,6 +30,12 @@ const getWorkouts = (
.then((res) => {
if (res.data.status === 'success') {
context.commit(WORKOUTS_STORE.MUTATIONS[target], res.data.data.workouts)
if (target === WorkoutsMutations['SET_USER_WORKOUTS']) {
context.commit(
WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION,
res.data.pagination
)
}
} else {
handleError(context, null)
}

View File

@ -15,6 +15,7 @@ export enum WorkoutsGetters {
TIMELINE_WORKOUTS = 'TIMELINE_WORKOUTS',
USER_WORKOUTS = 'USER_WORKOUTS',
WORKOUT_DATA = 'WORKOUT_DATA',
WORKOUTS_PAGINATION = 'WORKOUTS_PAGINATION',
}
export enum WorkoutsMutations {
@ -29,4 +30,5 @@ export enum WorkoutsMutations {
SET_WORKOUT_GPX = 'SET_WORKOUT_GPX',
SET_WORKOUT_CHART_DATA = 'SET_WORKOUT_CHART_DATA',
SET_WORKOUT_LOADING = 'SET_WORKOUT_LOADING',
SET_WORKOUTS_PAGINATION = 'SET_WORKOUTS_PAGINATION',
}

View File

@ -21,4 +21,7 @@ export const getters: GetterTree<IWorkoutsState, IRootState> &
[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]: (state: IWorkoutsState) => {
return state.workoutData
},
[WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]: (state: IWorkoutsState) => {
return state.pagination
},
}

View File

@ -5,6 +5,7 @@ import {
IWorkoutsState,
TWorkoutsMutations,
} from '@/store/modules/workouts/types'
import { IPagination } from '@/types/api'
import { IWorkout, IWorkoutApiChartData } from '@/types/workouts'
export const mutations: MutationTree<IWorkoutsState> & TWorkoutsMutations = {
@ -32,6 +33,12 @@ export const mutations: MutationTree<IWorkoutsState> & TWorkoutsMutations = {
) {
state.user_workouts = workouts
},
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION](
state: IWorkoutsState,
pagination: IPagination
) {
state.pagination = pagination
},
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT](
state: IWorkoutsState,
workout: IWorkout

View File

@ -1,9 +1,11 @@
import { IWorkoutsState } from '@/store/modules/workouts/types'
import { IPagination } from '@/types/api'
import { IWorkout } from '@/types/workouts'
export const workoutsState: IWorkoutsState = {
calendar_workouts: [],
timeline_workouts: [],
pagination: <IPagination>{},
user_workouts: [],
workoutData: {
gpx: '',

View File

@ -7,6 +7,7 @@ import {
import { WORKOUTS_STORE } from '@/store/constants'
import { IRootState } from '@/store/modules/root/types'
import { IPagination } from '@/types/api'
import {
IWorkout,
IWorkoutApiChartData,
@ -21,6 +22,7 @@ export interface IWorkoutsState {
calendar_workouts: IWorkout[]
timeline_workouts: IWorkout[]
workoutData: IWorkoutData
pagination: IPagination
}
export interface IWorkoutsActions {
@ -67,6 +69,9 @@ export interface IWorkoutsGetters {
[WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS](state: IWorkoutsState): IWorkout[]
[WORKOUTS_STORE.GETTERS.USER_WORKOUTS](state: IWorkoutsState): IWorkout[]
[WORKOUTS_STORE.GETTERS.WORKOUT_DATA](state: IWorkoutsState): IWorkoutData
[WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION](
state: IWorkoutsState
): IPagination
}
export type TWorkoutsMutations<S = IWorkoutsState> = {
@ -96,6 +101,10 @@ export type TWorkoutsMutations<S = IWorkoutsState> = {
state: S,
loading: boolean
): void
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION](
state: S,
pagination: IPagination
): void
[WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](state: S): void
[WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS](state: S): void
[WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT](state: S): void