@@ -56,11 +56,10 @@ export const defaultWorkoutState: WorkoutState = {
5656} ;
5757
5858export const startNewWorkout = async ( ) => {
59- db . transaction ( 'rw' , db . workoutState , async ( ) => {
60- const state =
61- ( await db . workoutState . toCollection ( ) . last ( ) ) ?? defaultWorkoutState ;
59+ await db . transaction ( 'rw' , db . workoutState , async ( ) => {
60+ const state = await getWorkoutState ( ) ;
6261
63- await db . workoutState . add ( {
62+ return db . workoutState . add ( {
6463 ...defaultWorkoutState ,
6564 workoutNumber : state . workoutNumber + 1 ,
6665 route : state . route ,
@@ -69,34 +68,32 @@ export const startNewWorkout = async () => {
6968} ;
7069
7170export const addLap = async ( ) => {
72- db . transaction ( 'rw' , db . workoutState , async ( ) => {
73- const state =
74- ( await db . workoutState . orderBy ( 'workoutNumber' ) . last ( ) ) ??
75- defaultWorkoutState ;
71+ await db . transaction ( 'rw' , db . workoutState , async ( ) => {
72+ const state = await getWorkoutState ( ) ;
7673
7774 const lapNumber = state . lapNumber + 1 ;
78- await db . workoutState . update ( state . workoutNumber , {
75+ return db . workoutState . update ( state . workoutNumber , {
7976 lapNumber,
8077 } ) ;
8178 } ) ;
8279} ;
8380
8481const getLastDatapoint = async ( ) => {
85- const state =
86- ( await db . workoutState . orderBy ( 'workoutNumber' ) . last ( ) ) ??
87- defaultWorkoutState ;
82+ const state = await getWorkoutState ( ) ;
8883
8984 return (
90- ( await db . workoutDataPoint
85+ db . workoutDataPoint
9186 . where ( 'workoutNumber' )
9287 . equals ( state . workoutNumber )
9388 . filter ( ( item ) => item . tracking )
94- . last ( ) ) ?? null
89+ . last ( ) ?? null
9590 ) ;
9691} ;
9792
9893const getWorkoutState = async ( ) => {
99- return ( await db . workoutState . toCollection ( ) . last ( ) ) ?? defaultWorkoutState ;
94+ const state = await db . workoutState . orderBy ( 'workoutNumber' ) . last ( ) ;
95+
96+ return state ?? defaultWorkoutState ;
10097} ;
10198
10299export const addDatapoint = async (
@@ -140,7 +137,7 @@ export const addDatapoint = async (
140137
141138 const coordinates = distanceToCoordinates ( routeWaypoints , totalDistance ) ;
142139
143- db . workoutDataPoint . add ( {
140+ await db . workoutDataPoint . add ( {
144141 ...dataPoint ,
145142 timestamp : new Date ( ) ,
146143 deltaTime : delta ,
@@ -162,47 +159,45 @@ export const addDatapoint = async (
162159 const maxHeartRate = workoutState . maxHeartRate ?? 0 ;
163160
164161 if ( maxHeartRate < heartRate ) {
165- setMaxHeartRate ( heartRate ) ;
162+ return setMaxHeartRate ( heartRate ) ;
166163 }
167164 }
168165 ) ;
169166} ;
170167
171168export const addElapsedTime = async ( delta : number ) => {
172- db . transaction ( 'rw' , db . workoutState , async ( ) => {
173- const state =
174- ( await db . workoutState . toCollection ( ) . last ( ) ) ?? defaultWorkoutState ;
169+ await db . transaction ( 'rw' , db . workoutState , async ( ) => {
170+ const state = await getWorkoutState ( ) ;
175171
176- await db . workoutState . update ( state . workoutNumber , {
172+ return db . workoutState . update ( state . workoutNumber , {
177173 elapsedTime : state . elapsedTime + delta ,
178174 } ) ;
179175 } ) ;
180176} ;
181177
182178export const initWorkoutstate = async ( ) => {
183- db . transaction ( 'rw' , db . workoutState , async ( ) => {
184- const state = await db . workoutState . toCollection ( ) . last ( ) ;
179+ await db . transaction ( 'rw' , db . workoutState , async ( ) => {
180+ const state = await db . workoutState . orderBy ( 'workoutNumber' ) . last ( ) ;
185181
186182 if ( ! state ) {
187- await db . workoutState . add ( defaultWorkoutState ) ;
183+ return db . workoutState . add ( defaultWorkoutState ) ;
188184 }
189185 } ) ;
190186} ;
191187
192188const setMaxHeartRate = async ( heartRate : number ) => {
193- const state =
194- ( await db . workoutState . toCollection ( ) . last ( ) ) ?? defaultWorkoutState ;
189+ const state = await getWorkoutState ( ) ;
195190
196- await db . workoutState . update ( state . workoutNumber , {
191+ return db . workoutState . update ( state . workoutNumber , {
197192 maxHeartRate : heartRate ,
198193 } ) ;
199194} ;
195+
200196export const setRoute = async ( route : Route ) => {
201- db . transaction ( 'rw' , db . workoutState , async ( ) => {
202- const state =
203- ( await db . workoutState . toCollection ( ) . last ( ) ) ?? defaultWorkoutState ;
197+ await db . transaction ( 'rw' , db . workoutState , async ( ) => {
198+ const state = await getWorkoutState ( ) ;
204199
205- await db . workoutState . update ( state . workoutNumber , {
200+ return db . workoutState . update ( state . workoutNumber , {
206201 route,
207202 } ) ;
208203 } ) ;
@@ -223,7 +218,7 @@ export const createNewWorkoutIfOldData = async () => {
223218 ) ;
224219
225220 if ( time . hours >= hoursToRecoverWorkout ) {
226- startNewWorkout ( ) ;
221+ return startNewWorkout ( ) ;
227222 }
228223 }
229224 }
0 commit comments