diff --git a/EditWorkout.tsx b/EditWorkout.tsx index abb7a96..f66e2c3 100644 --- a/EditWorkout.tsx +++ b/EditWorkout.tsx @@ -4,8 +4,8 @@ import { useNavigation, useRoute, } from '@react-navigation/native'; -import React, {useCallback, useContext, useState} from 'react'; -import {ScrollView, View} from 'react-native'; +import React, {useCallback, useContext, useRef, useState} from 'react'; +import {ScrollView, TextInput, View} from 'react-native'; import DocumentPicker from 'react-native-document-picker'; import {Button, Card, IconButton, TouchableRipple} from 'react-native-paper'; import ConfirmDialog from './ConfirmDialog'; @@ -33,6 +33,10 @@ export default function EditWorkout() { const [sets, setSets] = useState(params.value.sets?.toString() ?? '3'); const {toast} = useContext(SnackbarContext); const navigation = useNavigation(); + const setsRef = useRef(null); + const stepsRef = useRef(null); + const minutesRef = useRef(null); + const secondsRef = useRef(null); useFocusEffect( useCallback(() => { @@ -107,6 +111,11 @@ export default function EditWorkout() { toast('Commas and single quotes would break CSV exports', 6000); }; + const submitName = () => { + if (settings.steps) stepsRef.current?.focus(); + else setsRef.current?.focus(); + }; + return ( @@ -115,33 +124,42 @@ export default function EditWorkout() { label="Name" value={name} onChangeText={handleName} + onSubmitEditing={submitName} /> {!!settings.steps && ( )} {uri ? ( ); diff --git a/SetForm.tsx b/SetForm.tsx index cd73358..fd48c05 100644 --- a/SetForm.tsx +++ b/SetForm.tsx @@ -1,5 +1,5 @@ import React, {useContext, useRef, useState} from 'react'; -import {ScrollView, View} from 'react-native'; +import {ScrollView, TextInput, View} from 'react-native'; import {Button, Text} from 'react-native-paper'; import MassiveInput from './MassiveInput'; import {SnackbarContext} from './MassiveSnack'; @@ -25,9 +25,9 @@ export default function SetForm({ end: set.reps.toString().length, }); const {toast} = useContext(SnackbarContext); - const weightRef = useRef(null); - const repsRef = useRef(null); - const unitRef = useRef(null); + const weightRef = useRef(null); + const repsRef = useRef(null); + const unitRef = useRef(null); const handleSubmit = async () => { console.log(`${SetForm.name}.handleSubmit:`, {set}); @@ -72,7 +72,6 @@ export default function SetForm({ onChangeText={handleName} autoCorrect={false} autoFocus={!name} - blurOnSubmit={false} onSubmitEditing={() => repsRef.current?.focus()} /> setSelection(e.nativeEvent.selection)} autoFocus={!!name} - blurOnSubmit={false} innerRef={repsRef} />