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