Add workouts from plan page if none exist

This commit is contained in:
Brandon Presley 2022-08-28 20:54:07 +12:00
parent 891d01159f
commit 9b8fb95559
2 changed files with 27 additions and 13 deletions

View File

@ -1,4 +1,5 @@
import { import {
NavigationProp,
RouteProp, RouteProp,
useFocusEffect, useFocusEffect,
useNavigation, useNavigation,
@ -11,6 +12,7 @@ import {DatabaseContext} from './App';
import MassiveSwitch from './MassiveSwitch'; import MassiveSwitch from './MassiveSwitch';
import {PlanPageParams} from './PlanPage'; import {PlanPageParams} from './PlanPage';
import {DAYS} from './time'; import {DAYS} from './time';
import {DrawerParamList} from './App';
export default function EditPlan() { export default function EditPlan() {
const {params} = useRoute<RouteProp<PlanPageParams, 'EditPlan'>>(); const {params} = useRoute<RouteProp<PlanPageParams, 'EditPlan'>>();
@ -20,7 +22,7 @@ export default function EditPlan() {
); );
const [names, setNames] = useState<string[]>([]); const [names, setNames] = useState<string[]>([]);
const db = useContext(DatabaseContext); const db = useContext(DatabaseContext);
const navigation = useNavigation(); const navigation = useNavigation<NavigationProp<DrawerParamList>>();
useFocusEffect( useFocusEffect(
useCallback(() => { useCallback(() => {
@ -102,10 +104,9 @@ export default function EditPlan() {
))} ))}
<Text style={[styles.title, {marginTop: 10}]}>Workouts</Text> <Text style={[styles.title, {marginTop: 10}]}>Workouts</Text>
{names.length === 0 && ( {names.length === 0 && (
<Text style={{maxWidth: '80%'}}> <View>
No sets found. Try going to the home page and adding some workouts <Text>No workouts found.</Text>
first. </View>
</Text>
)} )}
{names.map(name => ( {names.map(name => (
<View key={name} style={[styles.row, {alignItems: 'center'}]}> <View key={name} style={[styles.row, {alignItems: 'center'}]}>
@ -119,13 +120,27 @@ export default function EditPlan() {
</View> </View>
))} ))}
</ScrollView> </ScrollView>
<Button {names.length === 0 ? (
style={{marginTop: 10}} <Button
mode="contained" mode="contained"
icon="save" onPress={() => {
onPress={save}> navigation.goBack();
Save navigation.navigate('Workouts', {
</Button> screen: 'EditWorkout',
params: {value: {name: ''}},
});
}}>
Add workout
</Button>
) : (
<Button
style={{marginTop: 10}}
mode="contained"
icon="save"
onPress={save}>
Save
</Button>
)}
</View> </View>
); );
} }

View File

@ -33,7 +33,6 @@ export default function Routes({db}: {db: SQLiteDatabase | null}) {
<Drawer.Navigator <Drawer.Navigator
screenOptions={{ screenOptions={{
headerTintColor: dark ? 'white' : 'black', headerTintColor: dark ? 'white' : 'black',
drawerType: 'slide',
swipeEdgeWidth: 1000, swipeEdgeWidth: 1000,
}}> }}>
{routes.map(route => ( {routes.map(route => (