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:
parent
00d4edcfc3
commit
c9b1ab1f9d
|
@ -6,7 +6,7 @@ import {
|
||||||
import {useCallback, useMemo, useState} from 'react'
|
import {useCallback, useMemo, useState} from 'react'
|
||||||
import {Text} from 'react-native'
|
import {Text} from 'react-native'
|
||||||
import {List} from 'react-native-paper'
|
import {List} from 'react-native-paper'
|
||||||
import {getBestSet} from './best.service'
|
import {getLast} from './best.service'
|
||||||
import {DARK_RIPPLE, LIGHT_RIPPLE} from './constants'
|
import {DARK_RIPPLE, LIGHT_RIPPLE} from './constants'
|
||||||
import {defaultSet} from './gym-set'
|
import {defaultSet} from './gym-set'
|
||||||
import {Plan} from './plan'
|
import {Plan} from './plan'
|
||||||
|
@ -37,7 +37,7 @@ export default function PlanItem({
|
||||||
|
|
||||||
const start = useCallback(async () => {
|
const start = useCallback(async () => {
|
||||||
const workout = item.workouts.split(',')[0]
|
const workout = item.workouts.split(',')[0]
|
||||||
let first = await getBestSet(workout)
|
let first = await getLast(workout)
|
||||||
if (!first) first = {...defaultSet, name: workout}
|
if (!first) first = {...defaultSet, name: workout}
|
||||||
delete first.id
|
delete first.id
|
||||||
if (ids.length === 0)
|
if (ids.length === 0)
|
||||||
|
|
|
@ -3,7 +3,7 @@ import {useCallback, useMemo, useRef, useState} from 'react'
|
||||||
import {FlatList, NativeModules, TextInput, View} from 'react-native'
|
import {FlatList, NativeModules, TextInput, View} from 'react-native'
|
||||||
import {Button, ProgressBar} from 'react-native-paper'
|
import {Button, ProgressBar} from 'react-native-paper'
|
||||||
import AppInput from './AppInput'
|
import AppInput from './AppInput'
|
||||||
import {getBestSet} from './best.service'
|
import {getBestSet, getLast} from './best.service'
|
||||||
import {PADDING} from './constants'
|
import {PADDING} from './constants'
|
||||||
import CountMany from './count-many'
|
import CountMany from './count-many'
|
||||||
import {AppDataSource} from './data-source'
|
import {AppDataSource} from './data-source'
|
||||||
|
@ -59,13 +59,13 @@ export default function StartPlan() {
|
||||||
if (!counts && !newCounts) return
|
if (!counts && !newCounts) return
|
||||||
const workout = counts ? counts[index] : newCounts[index]
|
const workout = counts ? counts[index] : newCounts[index]
|
||||||
console.log(`${StartPlan.name}.next:`, {workout})
|
console.log(`${StartPlan.name}.next:`, {workout})
|
||||||
const newBest = await getBestSet(workout.name)
|
const last = await getLast(workout.name)
|
||||||
if (!newBest) return
|
if (!last) return
|
||||||
delete newBest.id
|
delete last.id
|
||||||
console.log(`${StartPlan.name}.next:`, {newBest})
|
console.log(`${StartPlan.name}.select:`, {last})
|
||||||
setReps(newBest.reps.toString())
|
setReps(last.reps.toString())
|
||||||
setWeight(newBest.weight.toString())
|
setWeight(last.weight.toString())
|
||||||
setUnit(newBest.unit)
|
setUnit(last.unit)
|
||||||
},
|
},
|
||||||
[counts],
|
[counts],
|
||||||
)
|
)
|
||||||
|
|
|
@ -41,8 +41,8 @@ android {
|
||||||
missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60"
|
missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60"
|
||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode 36153
|
versionCode 36154
|
||||||
versionName "1.127"
|
versionName "1.128"
|
||||||
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
|
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
|
||||||
|
|
||||||
if (isNewArchitectureEnabled()) {
|
if (isNewArchitectureEnabled()) {
|
||||||
|
|
|
@ -13,3 +13,16 @@ export const getBestSet = async (name: string): Promise<GymSet> => {
|
||||||
.addOrderBy('reps', 'DESC')
|
.addOrderBy('reps', 'DESC')
|
||||||
.getOne()
|
.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()
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "massive",
|
"name": "massive",
|
||||||
"version": "1.127",
|
"version": "1.128",
|
||||||
"private": true,
|
"private": true,
|
||||||
"license": "GPL-3.0-only",
|
"license": "GPL-3.0-only",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user