Prevent counting hidden sets for prediction

Closes #71
This commit is contained in:
Brandon Presley 2022-09-30 13:00:12 +13:00
parent 90a3d473b6
commit c41b8438d3
3 changed files with 9 additions and 5 deletions

View File

@ -35,16 +35,20 @@ export default function SetList() {
setSet({...defaultSet});
if (settings.newSet === 'empty') return;
const todaysSet = await getToday();
console.log(`${SetList.name}.predict:`, {todaysSet});
if (!settings.newSet && todaysSet) return setSet({...todaysSet});
const todaysPlan = await getTodaysPlan();
console.log(`${SetList.name}.predict:`, {todaysPlan});
if (todaysPlan.length === 0) return;
const todaysWorkouts = todaysPlan[0].workouts.split(',');
setWorkouts(todaysWorkouts);
let workout = todaysWorkouts[0];
let best = await getBestSet(workout);
console.log(`${SetList.name}.predict:`, {workout, best});
if (!todaysSet || !todaysWorkouts.includes(todaysSet.name))
return setSet(best);
let _count = await countToday(todaysSet.name);
console.log(`${SetList.name}.predict:`, {_count});
workout = todaysSet.name;
best = await getBestSet(workout);
const index = todaysWorkouts.indexOf(todaysSet.name) + 1;
@ -113,7 +117,7 @@ export default function SetList() {
}, [search, end, offset, sets]);
const onAdd = useCallback(async () => {
console.log(`${SetList.name}.onAdd`, {set, defaultSet, workouts});
console.log(`${SetList.name}.onAdd`, {set, workouts});
navigation.navigate('EditSet', {
set: set || {...defaultSet},
workouts,

View File

@ -8,13 +8,13 @@ export const getBestSet = async (name: string): Promise<Set> => {
const bestWeight = `
SELECT name, reps, unit, MAX(weight) AS weight
FROM sets
WHERE name = ? AND NOT hidden
WHERE name = ?
GROUP BY name;
`;
const bestReps = `
SELECT name, MAX(reps) as reps, unit, weight, sets, minutes, seconds
FROM sets
WHERE name = ? AND weight = ? AND NOT hidden
WHERE name = ? AND weight = ?
GROUP BY name;
`;
const [weightResult] = await db.executeSql(bestWeight, [name]);

View File

@ -124,7 +124,7 @@ export const getNames = async (): Promise<string[]> => {
export const getToday = async (): Promise<Set | undefined> => {
const select = `
SELECT * FROM sets
SELECT name, reps, weight, sets, minutes, seconds, unit, image FROM sets
WHERE NOT hidden
AND created LIKE strftime('%Y-%m-%d%%', 'now', 'localtime')
ORDER BY created DESC
@ -138,7 +138,7 @@ export const countToday = async (name: string): Promise<number> => {
const select = `
SELECT COUNT(*) as total FROM sets
WHERE created LIKE strftime('%Y-%m-%d%%', 'now', 'localtime')
AND name = ?
AND name = ? AND NOT hidden
`;
const [result] = await db.executeSql(select, [name]);
return Number(result.rows.item(0)?.total);