Client - init workout detail w/ map (wip)
This commit is contained in:
@ -49,4 +49,37 @@ export const actions: ActionTree<IWorkoutsState, IRootState> &
|
||||
): void {
|
||||
getWorkouts(context, payload, 'USER_WORKOUTS')
|
||||
},
|
||||
[WORKOUTS_STORE.ACTIONS.GET_WORKOUT](
|
||||
context: ActionContext<IWorkoutsState, IRootState>,
|
||||
workoutId: string
|
||||
): void {
|
||||
context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)
|
||||
context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)
|
||||
authApi
|
||||
.get(`workouts/${workoutId}`)
|
||||
.then((res) => {
|
||||
if (res.data.status === 'success') {
|
||||
context.commit(
|
||||
WORKOUTS_STORE.MUTATIONS.SET_WORKOUT,
|
||||
res.data.data.workouts[0]
|
||||
)
|
||||
if (res.data.data.workouts[0].with_gpx) {
|
||||
authApi.get(`workouts/${workoutId}/gpx`).then((res) => {
|
||||
if (res.data.status === 'success') {
|
||||
context.commit(
|
||||
WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX,
|
||||
res.data.data.gpx
|
||||
)
|
||||
}
|
||||
})
|
||||
}
|
||||
} else {
|
||||
handleError(context, null)
|
||||
}
|
||||
})
|
||||
.catch((error) => handleError(context, error))
|
||||
.finally(() =>
|
||||
context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)
|
||||
)
|
||||
},
|
||||
}
|
||||
|
@ -1,15 +1,20 @@
|
||||
export enum WorkoutsActions {
|
||||
GET_CALENDAR_WORKOUTS = 'GET_CALENDAR_WORKOUTS',
|
||||
GET_USER_WORKOUTS = 'GET_USER_WORKOUTS',
|
||||
GET_WORKOUT = 'GET_WORKOUT',
|
||||
}
|
||||
|
||||
export enum WorkoutsGetters {
|
||||
CALENDAR_WORKOUTS = 'CALENDAR_WORKOUTS',
|
||||
USER_WORKOUTS = 'USER_WORKOUTS',
|
||||
WORKOUT = 'WORKOUT',
|
||||
}
|
||||
|
||||
export enum WorkoutsMutations {
|
||||
EMPTY_WORKOUTS = 'EMPTY_WORKOUTS',
|
||||
SET_CALENDAR_WORKOUTS = 'SET_CALENDAR_WORKOUTS',
|
||||
SET_USER_WORKOUTS = 'SET_USER_WORKOUTS',
|
||||
SET_WORKOUT = 'SET_WORKOUT',
|
||||
SET_WORKOUT_GPX = 'SET_WORKOUT_GPX',
|
||||
SET_WORKOUT_LOADING = 'SET_WORKOUT_LOADING',
|
||||
}
|
||||
|
@ -15,4 +15,7 @@ export const getters: GetterTree<IWorkoutsState, IRootState> &
|
||||
[WORKOUTS_STORE.GETTERS.USER_WORKOUTS]: (state: IWorkoutsState) => {
|
||||
return state.user_workouts
|
||||
},
|
||||
[WORKOUTS_STORE.GETTERS.WORKOUT]: (state: IWorkoutsState) => {
|
||||
return state.workout
|
||||
},
|
||||
}
|
||||
|
@ -20,6 +20,24 @@ export const mutations: MutationTree<IWorkoutsState> & TWorkoutsMutations = {
|
||||
) {
|
||||
state.user_workouts = workouts
|
||||
},
|
||||
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT](
|
||||
state: IWorkoutsState,
|
||||
workout: IWorkout
|
||||
) {
|
||||
state.workout.workout = workout
|
||||
},
|
||||
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](
|
||||
state: IWorkoutsState,
|
||||
loading: boolean
|
||||
) {
|
||||
state.workout.loading = loading
|
||||
},
|
||||
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX](
|
||||
state: IWorkoutsState,
|
||||
gpx: string
|
||||
) {
|
||||
state.workout.gpx = gpx
|
||||
},
|
||||
[WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS](state: IWorkoutsState) {
|
||||
state.calendar_workouts = []
|
||||
state.user_workouts = []
|
||||
|
@ -1,6 +1,12 @@
|
||||
import { IWorkoutsState } from '@/store/modules/workouts/types'
|
||||
import { IWorkout } from '@/types/workouts'
|
||||
|
||||
export const workoutsState: IWorkoutsState = {
|
||||
calendar_workouts: [],
|
||||
user_workouts: [],
|
||||
workout: {
|
||||
gpx: '',
|
||||
loading: false,
|
||||
workout: <IWorkout>{},
|
||||
},
|
||||
}
|
||||
|
@ -7,11 +7,12 @@ import {
|
||||
|
||||
import { WORKOUTS_STORE } from '@/store/constants'
|
||||
import { IRootState } from '@/store/modules/root/types'
|
||||
import { IWorkout, IWorkoutsPayload } from '@/types/workouts'
|
||||
import { IWorkout, IWorkoutsPayload, IWorkoutState } from '@/types/workouts'
|
||||
|
||||
export interface IWorkoutsState {
|
||||
user_workouts: IWorkout[]
|
||||
calendar_workouts: IWorkout[]
|
||||
workout: IWorkoutState
|
||||
}
|
||||
|
||||
export interface IWorkoutsActions {
|
||||
@ -23,11 +24,16 @@ export interface IWorkoutsActions {
|
||||
context: ActionContext<IWorkoutsState, IRootState>,
|
||||
payload: IWorkoutsPayload
|
||||
): void
|
||||
[WORKOUTS_STORE.ACTIONS.GET_WORKOUT](
|
||||
context: ActionContext<IWorkoutsState, IRootState>,
|
||||
workoutId: string | string[]
|
||||
): void
|
||||
}
|
||||
|
||||
export interface IWorkoutsGetters {
|
||||
[WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS](state: IWorkoutsState): IWorkout[]
|
||||
[WORKOUTS_STORE.GETTERS.USER_WORKOUTS](state: IWorkoutsState): IWorkout[]
|
||||
[WORKOUTS_STORE.GETTERS.WORKOUT](state: IWorkoutsState): IWorkoutState
|
||||
}
|
||||
|
||||
export type TWorkoutsMutations<S = IWorkoutsState> = {
|
||||
@ -39,6 +45,12 @@ export type TWorkoutsMutations<S = IWorkoutsState> = {
|
||||
state: S,
|
||||
workouts: IWorkout[]
|
||||
): void
|
||||
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT](state: S, workout: IWorkout): void
|
||||
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX](state: S, gpx: string): void
|
||||
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](
|
||||
state: S,
|
||||
loading: boolean
|
||||
): void
|
||||
[WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS](state: S): void
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user