Client - init workout chart (WIP)

This commit is contained in:
Sam
2021-09-26 08:59:17 +02:00
parent 146899c269
commit c50e74143e
19 changed files with 467 additions and 37 deletions

View File

@ -64,6 +64,14 @@ export const actions: ActionTree<IWorkoutsState, IRootState> &
res.data.data.workouts[0]
)
if (res.data.data.workouts[0].with_gpx) {
authApi.get(`workouts/${workoutId}/chart_data`).then((res) => {
if (res.data.status === 'success') {
context.commit(
WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA,
res.data.data.chart_data
)
}
})
authApi.get(`workouts/${workoutId}/gpx`).then((res) => {
if (res.data.status === 'success') {
context.commit(

View File

@ -17,5 +17,6 @@ export enum WorkoutsMutations {
SET_USER_WORKOUTS = 'SET_USER_WORKOUTS',
SET_WORKOUT = 'SET_WORKOUT',
SET_WORKOUT_GPX = 'SET_WORKOUT_GPX',
SET_WORKOUT_CHART_DATA = 'SET_WORKOUT_CHART_DATA',
SET_WORKOUT_LOADING = 'SET_WORKOUT_LOADING',
}

View File

@ -1,11 +1,12 @@
import { MutationTree } from 'vuex'
import { WORKOUTS_STORE } from '@/store/constants'
import { initialWorkoutValue } from '@/store/modules/workouts/state'
import {
IWorkoutsState,
TWorkoutsMutations,
} from '@/store/modules/workouts/types'
import { IWorkout } from '@/types/workouts'
import { IWorkout, IWorkoutApiChartData } from '@/types/workouts'
export const mutations: MutationTree<IWorkoutsState> & TWorkoutsMutations = {
[WORKOUTS_STORE.MUTATIONS.SET_CALENDAR_WORKOUTS](
@ -26,11 +27,11 @@ export const mutations: MutationTree<IWorkoutsState> & TWorkoutsMutations = {
) {
state.workout.workout = workout
},
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA](
state: IWorkoutsState,
loading: boolean
chartData: IWorkoutApiChartData[]
) {
state.workout.loading = loading
state.workout.chartData = chartData
},
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX](
state: IWorkoutsState,
@ -38,15 +39,17 @@ export const mutations: MutationTree<IWorkoutsState> & TWorkoutsMutations = {
) {
state.workout.gpx = gpx
},
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](
state: IWorkoutsState,
loading: boolean
) {
state.workout.loading = loading
},
[WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS](state: IWorkoutsState) {
state.calendar_workouts = []
state.user_workouts = []
},
[WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT](state: IWorkoutsState) {
state.workout = {
gpx: '',
loading: false,
workout: <IWorkout>{},
}
state.workout = initialWorkoutValue
},
}

View File

@ -1,12 +1,15 @@
import { IWorkoutsState } from '@/store/modules/workouts/types'
import { IWorkout } from '@/types/workouts'
export const initialWorkoutValue = {
gpx: '',
loading: false,
workout: <IWorkout>{},
chartData: [],
}
export const workoutsState: IWorkoutsState = {
calendar_workouts: [],
user_workouts: [],
workout: {
gpx: '',
loading: false,
workout: <IWorkout>{},
},
workout: initialWorkoutValue,
}

View File

@ -7,7 +7,12 @@ import {
import { WORKOUTS_STORE } from '@/store/constants'
import { IRootState } from '@/store/modules/root/types'
import { IWorkout, IWorkoutsPayload, IWorkoutState } from '@/types/workouts'
import {
IWorkout,
IWorkoutApiChartData,
IWorkoutsPayload,
IWorkoutState,
} from '@/types/workouts'
export interface IWorkoutsState {
user_workouts: IWorkout[]
@ -46,6 +51,10 @@ export type TWorkoutsMutations<S = IWorkoutsState> = {
workouts: IWorkout[]
): void
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT](state: S, workout: IWorkout): void
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA](
state: S,
chartDate: IWorkoutApiChartData[]
): void
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX](state: S, gpx: string): void
[WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](
state: S,