Show next workout on EditSet page
This commit is contained in:
parent
384e3660c1
commit
0dcfc8eadf
|
@ -73,7 +73,7 @@ export default function EditSet() {
|
|||
|
||||
return (
|
||||
<View style={{padding: 10}}>
|
||||
<SetForm save={save} set={params.set} />
|
||||
<SetForm save={save} set={params.set} next={params.next} />
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ export type HomePageParams = {
|
|||
Sets: {};
|
||||
EditSet: {
|
||||
set: Set;
|
||||
next?: string;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -6,9 +6,11 @@ import Set from './set';
|
|||
export default function SetForm({
|
||||
save,
|
||||
set,
|
||||
next,
|
||||
}: {
|
||||
set: Set;
|
||||
save: (set: Set) => void;
|
||||
next?: string;
|
||||
}) {
|
||||
const [name, setName] = useState(set.name);
|
||||
const [reps, setReps] = useState(set.reps.toString());
|
||||
|
@ -77,7 +79,12 @@ export default function SetForm({
|
|||
onSubmitEditing={handleSubmit}
|
||||
selectTextOnFocus
|
||||
/>
|
||||
<Text>{set.created?.replace('T', ' ')}</Text>
|
||||
{set.created && (
|
||||
<Text style={{marginBottom: 10}}>
|
||||
Created: {set.created?.replace('T', ' ')}
|
||||
</Text>
|
||||
)}
|
||||
{next && <Text>Next: {next}</Text>}
|
||||
</ScrollView>
|
||||
<Button
|
||||
disabled={!name}
|
||||
|
|
24
SetList.tsx
24
SetList.tsx
|
@ -26,7 +26,8 @@ const defaultSet = {
|
|||
|
||||
export default function SetList() {
|
||||
const [sets, setSets] = useState<Set[]>();
|
||||
const [nextSet, setNextSet] = useState<Set>();
|
||||
const [set, setSet] = useState<Set>();
|
||||
const [nextWorkout, setNextWorkout] = useState<string>();
|
||||
const [offset, setOffset] = useState(0);
|
||||
const [search, setSearch] = useState('');
|
||||
const [refreshing, setRefreshing] = useState(false);
|
||||
|
@ -112,18 +113,19 @@ export default function SetList() {
|
|||
if (todaysPlan.length === 0) return;
|
||||
const todaysSets = await getTodaysSets();
|
||||
const todaysWorkouts = todaysPlan[0].workouts.split(',');
|
||||
let nextWorkout = todaysWorkouts[0];
|
||||
let workout = todaysWorkouts[0];
|
||||
if (todaysSets.length > 0) {
|
||||
const count = todaysSets.filter(
|
||||
s => s.name === todaysSets[0].name,
|
||||
).length;
|
||||
nextWorkout = todaysSets[0].name;
|
||||
workout = todaysSets[0].name;
|
||||
if (count >= Number(settings.sets))
|
||||
nextWorkout =
|
||||
workout =
|
||||
todaysWorkouts[todaysWorkouts.indexOf(todaysSets[0].name!) + 1];
|
||||
}
|
||||
const best = await getBest(nextWorkout);
|
||||
setNextSet({...best});
|
||||
const best = await getBest(workout);
|
||||
setSet({...best});
|
||||
setNextWorkout(todaysWorkouts[todaysWorkouts.indexOf(workout) + 1]);
|
||||
}, [getTodaysSets, getTodaysPlan, getBest, db]);
|
||||
|
||||
useFocusEffect(
|
||||
|
@ -167,9 +169,11 @@ export default function SetList() {
|
|||
}, [search, end, offset, sets, db, selectSets]);
|
||||
|
||||
const onAdd = useCallback(async () => {
|
||||
const set: Set = {...defaultSet};
|
||||
navigation.navigate('EditSet', {set: nextSet || set});
|
||||
}, [navigation, nextSet]);
|
||||
navigation.navigate('EditSet', {
|
||||
set: set || {...defaultSet},
|
||||
next: nextWorkout,
|
||||
});
|
||||
}, [navigation, set, nextWorkout]);
|
||||
|
||||
return (
|
||||
<View style={styles.container}>
|
||||
|
@ -184,7 +188,7 @@ export default function SetList() {
|
|||
/>
|
||||
}
|
||||
renderItem={renderItem}
|
||||
keyExtractor={set => set.id!.toString()}
|
||||
keyExtractor={s => s.id!.toString()}
|
||||
onEndReached={next}
|
||||
refreshing={refreshing}
|
||||
onRefresh={refreshLoader}
|
||||
|
|
Loading…
Reference in New Issue
Block a user