Change default reps/weight for starting a plan - 1.128

Previously we used the globally best reps+weight
set by default. More commonly we build up to our
last best working set. People can still check out
their best sets on the best page.

Closes #153
This commit is contained in:
Brandon Presley 2023-03-02 19:05:27 +13:00
parent 00d4edcfc3
commit c9b1ab1f9d
5 changed files with 26 additions and 13 deletions

View File

@ -6,7 +6,7 @@ import {
import {useCallback, useMemo, useState} from 'react'
import {Text} from 'react-native'
import {List} from 'react-native-paper'
import {getBestSet} from './best.service'
import {getLast} from './best.service'
import {DARK_RIPPLE, LIGHT_RIPPLE} from './constants'
import {defaultSet} from './gym-set'
import {Plan} from './plan'
@ -37,7 +37,7 @@ export default function PlanItem({
const start = useCallback(async () => {
const workout = item.workouts.split(',')[0]
let first = await getBestSet(workout)
let first = await getLast(workout)
if (!first) first = {...defaultSet, name: workout}
delete first.id
if (ids.length === 0)

View File

@ -3,7 +3,7 @@ import {useCallback, useMemo, useRef, useState} from 'react'
import {FlatList, NativeModules, TextInput, View} from 'react-native'
import {Button, ProgressBar} from 'react-native-paper'
import AppInput from './AppInput'
import {getBestSet} from './best.service'
import {getBestSet, getLast} from './best.service'
import {PADDING} from './constants'
import CountMany from './count-many'
import {AppDataSource} from './data-source'
@ -59,13 +59,13 @@ export default function StartPlan() {
if (!counts && !newCounts) return
const workout = counts ? counts[index] : newCounts[index]
console.log(`${StartPlan.name}.next:`, {workout})
const newBest = await getBestSet(workout.name)
if (!newBest) return
delete newBest.id
console.log(`${StartPlan.name}.next:`, {newBest})
setReps(newBest.reps.toString())
setWeight(newBest.weight.toString())
setUnit(newBest.unit)
const last = await getLast(workout.name)
if (!last) return
delete last.id
console.log(`${StartPlan.name}.select:`, {last})
setReps(last.reps.toString())
setWeight(last.weight.toString())
setUnit(last.unit)
},
[counts],
)

View File

@ -41,8 +41,8 @@ android {
missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 36153
versionName "1.127"
versionCode 36154
versionName "1.128"
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
if (isNewArchitectureEnabled()) {

View File

@ -13,3 +13,16 @@ export const getBestSet = async (name: string): Promise<GymSet> => {
.addOrderBy('reps', 'DESC')
.getOne()
}
export const getLast = async (name: string): Promise<GymSet> => {
return setRepo
.createQueryBuilder()
.where('name = :name', {name})
.andWhere('reps >= 5')
.groupBy("STRFTIME('%Y-%m-%d', created)")
.orderBy('created', 'DESC')
.select('reps')
.addSelect('MAX(weight) as weight')
.addSelect('unit')
.getRawOne()
}

View File

@ -1,6 +1,6 @@
{
"name": "massive",
"version": "1.127",
"version": "1.128",
"private": true,
"license": "GPL-3.0-only",
"scripts": {