diff --git a/EditPlan.tsx b/EditPlan.tsx index ab42c39..1b20218 100644 --- a/EditPlan.tsx +++ b/EditPlan.tsx @@ -6,14 +6,16 @@ import { } from '@react-navigation/native' import {useCallback, useEffect, useState} from 'react' import {ScrollView, StyleSheet, View} from 'react-native' -import {Button, Text} from 'react-native-paper' +import {Button, IconButton, Text} from 'react-native-paper' +import {getLast} from './best.service' import {MARGIN, PADDING} from './constants' import {planRepo, setRepo} from './db' -import {DrawerParamList} from './drawer-param-list' +import {defaultSet} from './gym-set' import {PlanPageParams} from './plan-page-params' import StackHeader from './StackHeader' import Switch from './Switch' import {DAYS} from './time' +import useDark from './use-dark' export default function EditPlan() { const {params} = useRoute>() @@ -25,7 +27,8 @@ export default function EditPlan() { plan.workouts ? plan.workouts.split(',') : [], ) const [names, setNames] = useState([]) - const navigation = useNavigation>() + const navigation = useNavigation>() + const dark = useDark() useEffect(() => { setRepo @@ -74,8 +77,18 @@ export default function EditPlan() { return ( <> + title={typeof plan.id === 'number' ? 'Edit plan' : 'Add plan'}> + { + let first = await getLast(workouts[0]) + if (!first) first = {...defaultSet, name: workouts[0]} + delete first.id + navigation.navigate('StartPlan', {plan: params.plan, first}) + }} + icon="play-arrow" + /> + Days diff --git a/StartPlan.tsx b/StartPlan.tsx index bc9e82a..32ce36f 100644 --- a/StartPlan.tsx +++ b/StartPlan.tsx @@ -1,7 +1,13 @@ -import {RouteProp, useFocusEffect, useRoute} from '@react-navigation/native' +import { + NavigationProp, + RouteProp, + useFocusEffect, + useNavigation, + useRoute, +} from '@react-navigation/native' import {useCallback, useMemo, useRef, useState} from 'react' import {FlatList, NativeModules, TextInput, View} from 'react-native' -import {Button, ProgressBar} from 'react-native-paper' +import {Button, IconButton, ProgressBar} from 'react-native-paper' import AppInput from './AppInput' import {getBestSet, getLast} from './best.service' import {PADDING} from './constants' @@ -14,6 +20,7 @@ import Settings from './settings' import StackHeader from './StackHeader' import StartPlanItem from './StartPlanItem' import {toast} from './toast' +import useDark from './use-dark' export default function StartPlan() { const {params} = useRoute>() @@ -27,6 +34,8 @@ export default function StartPlan() { const repsRef = useRef(null) const unitRef = useRef(null) const workouts = useMemo(() => params.plan.workouts.split(','), [params]) + const dark = useDark() + const navigation = useNavigation>() const [selection, setSelection] = useState({ start: 0, @@ -105,7 +114,13 @@ export default function StartPlan() { return ( <> - + + navigation.navigate('EditPlan', {plan: params.plan})} + icon="edit" + /> +