Improve performance of StartPlan

This commit is contained in:
Brandon Presley 2022-10-30 14:46:32 +13:00
parent eba33c2599
commit 2ae9d2a4c1
2 changed files with 6 additions and 11 deletions

View File

@ -144,11 +144,7 @@ export default function StartPlan() {
renderItem={({item, index}) => ( renderItem={({item, index}) => (
<List.Item <List.Item
title={item.name} title={item.name}
description={ description={item.total.toString()}
settings.showSets
? `${item.total} / ${item.sets ?? 3}`
: item.total.toString()
}
onPress={() => select(index)} onPress={() => select(index)}
left={() => ( left={() => (
<View <View

View File

@ -160,18 +160,17 @@ export const countToday = async (name: string): Promise<number> => {
}; };
export const countMany = async (names: string[]): Promise<CountMany[]> => { export const countMany = async (names: string[]): Promise<CountMany[]> => {
const questions = names.map(_ => '?').join(','); const questions = names.map(_ => '(?)').join(',');
console.log({questions, names}); console.log({questions, names});
const select = ` const select = `
SELECT workouts.name, COUNT(sets.id) as total SELECT workouts.name, COUNT(sets.id) as total
FROM ( FROM (select 0 as name union values ${questions}) as workouts
SELECT distinct name FROM sets
WHERE name IN (${questions})
) workouts
LEFT JOIN sets ON sets.name = workouts.name LEFT JOIN sets ON sets.name = workouts.name
AND sets.created LIKE STRFTIME('%Y-%m-%d%%', 'now', 'localtime') AND sets.created LIKE STRFTIME('%Y-%m-%d%%', 'now', 'localtime')
AND NOT sets.hidden AND NOT sets.hidden
GROUP BY workouts.name; GROUP BY workouts.name
LIMIT -1
OFFSET 1
`; `;
const [result] = await db.executeSql(select, names); const [result] = await db.executeSql(select, names);
return result.rows.raw(); return result.rows.raw();