diff --git a/EditWorkout.tsx b/EditWorkout.tsx index e71a196..968c9e5 100644 --- a/EditWorkout.tsx +++ b/EditWorkout.tsx @@ -12,18 +12,18 @@ import ConfirmDialog from './ConfirmDialog'; import {MARGIN, PADDING} from './constants'; import MassiveInput from './MassiveInput'; import {updatePlanWorkouts} from './plan.service'; -import {addSet, getSet, updateManySet, updateSetImage} from './set.service'; +import {addSet, updateManySet, updateSetImage} from './set.service'; import {WorkoutsPageParams} from './WorkoutsPage'; export default function EditWorkout() { const {params} = useRoute>(); - const [name, setName] = useState(params.value.name); const [removeImage, setRemoveImage] = useState(false); const [showRemove, setShowRemove] = useState(false); - const [steps, setSteps] = useState(''); - const [uri, setUri] = useState(); - const [minutes, setMinutes] = useState(''); - const [seconds, setSeconds] = useState(''); + const [name, setName] = useState(params.value.name); + const [steps, setSteps] = useState(params.value.steps); + const [uri, setUri] = useState(params.value.image); + const [minutes, setMinutes] = useState(params.value.minutes?.toString()); + const [seconds, setSeconds] = useState(params.value.seconds?.toString()); const [sets, setSets] = useState(''); const navigation = useNavigation(); @@ -37,15 +37,6 @@ export default function EditWorkout() { title: params.value.name || 'New workout', }); if (!name) return; - getSet(name).then(set => { - console.log(`${EditWorkout.name}.focus`, {set, name}); - if (!set) return; - setUri(set.image); - setMinutes(set.minutes?.toString() ?? '3'); - setSeconds(set.seconds?.toString() ?? '30'); - setSets(set.sets?.toString() ?? '3'); - setSteps(set.steps ?? ''); - }); }, [navigation, name, params.value.name]), ); @@ -54,8 +45,8 @@ export default function EditWorkout() { oldName: params.value.name, newName: name || params.value.name, sets, - seconds, - minutes, + seconds: seconds?.toString() ?? '30', + minutes: minutes?.toString() ?? '3', steps, }); await updatePlanWorkouts(params.value.name, name || params.value.name); @@ -70,9 +61,9 @@ export default function EditWorkout() { weight: 0, hidden: true, image: uri, - minutes: +minutes, - seconds: +seconds, - sets: +sets, + minutes: minutes ? +minutes : 3, + seconds: seconds ? +seconds : 30, + sets: sets ? +sets : 3, steps, }); navigation.goBack(); diff --git a/WorkoutItem.tsx b/WorkoutItem.tsx index 48c73a9..e25af2f 100644 --- a/WorkoutItem.tsx +++ b/WorkoutItem.tsx @@ -3,15 +3,15 @@ import React, {useCallback, useState} from 'react'; import {GestureResponderEvent, Image} from 'react-native'; import {List, Menu, Text} from 'react-native-paper'; import ConfirmDialog from './ConfirmDialog'; +import Set from './set'; import {deleteSetsBy} from './set.service'; -import Workout from './workout'; import {WorkoutsPageParams} from './WorkoutsPage'; export default function WorkoutItem({ item, onRemoved, }: { - item: Workout; + item: Set; onRemoved: () => void; }) { const [showMenu, setShowMenu] = useState(false); @@ -33,8 +33,8 @@ export default function WorkoutItem({ [setShowMenu, setAnchor], ); - const minutes = item.minutes.toString().padStart(2, '0'); - const seconds = item.seconds.toString().padStart(2, '0'); + const minutes = item.minutes?.toString().padStart(2, '0'); + const seconds = item.seconds?.toString().padStart(2, '0'); return ( <> diff --git a/WorkoutList.tsx b/WorkoutList.tsx index 95abb05..2cb3ccd 100644 --- a/WorkoutList.tsx +++ b/WorkoutList.tsx @@ -7,16 +7,16 @@ import React, {useCallback, useEffect, useState} from 'react'; import {FlatList} from 'react-native'; import {List} from 'react-native-paper'; import Page from './Page'; +import Set from './set'; import {getDistinctSets} from './set.service'; import SetList from './SetList'; -import Workout from './workout'; import WorkoutItem from './WorkoutItem'; import {WorkoutsPageParams} from './WorkoutsPage'; const limit = 15; export default function WorkoutList() { - const [workouts, setWorkouts] = useState(); + const [workouts, setWorkouts] = useState(); const [offset, setOffset] = useState(0); const [search, setSearch] = useState(''); const [end, setEnd] = useState(false); @@ -44,7 +44,7 @@ export default function WorkoutList() { ); const renderItem = useCallback( - ({item}: {item: Workout}) => ( + ({item}: {item: Set}) => ( ), [refresh], @@ -73,7 +73,7 @@ export default function WorkoutList() { const onAdd = useCallback(async () => { navigation.navigate('EditWorkout', { - value: {name: '', sets: 3, image: '', steps: ''} as Workout, + value: {name: '', sets: 3, image: '', steps: '', reps: 0, weight: 0}, }); }, [navigation]); diff --git a/WorkoutsPage.tsx b/WorkoutsPage.tsx index 04812d5..7636311 100644 --- a/WorkoutsPage.tsx +++ b/WorkoutsPage.tsx @@ -5,13 +5,13 @@ import React from 'react'; import {IconButton} from 'react-native-paper'; import {DrawerParamList} from './App'; import EditWorkout from './EditWorkout'; -import Workout from './workout'; +import Set from './set'; import WorkoutList from './WorkoutList'; export type WorkoutsPageParams = { WorkoutList: {}; EditWorkout: { - value: Workout; + value: Set; }; }; const Stack = createStackNavigator(); diff --git a/set.service.ts b/set.service.ts index 0c59043..70e206f 100644 --- a/set.service.ts +++ b/set.service.ts @@ -1,6 +1,5 @@ import {db} from './db'; import Set from './set'; -import Workout from './workout'; export const updateSet = async (value: Set) => { const update = ` @@ -115,7 +114,7 @@ export const updateManySet = async ({ minutes: string; seconds: string; sets: string; - steps: string; + steps?: string; }) => { const update = ` UPDATE sets SET name = ?, minutes = ?, seconds = ?, sets = ?, steps = ? @@ -146,9 +145,9 @@ export const getDistinctSets = async ({ search, limit, offset, -}: PageParams): Promise => { +}: PageParams): Promise => { const select = ` - SELECT DISTINCT name, image, sets, minutes, seconds + SELECT name, image, sets, minutes, seconds, steps FROM sets WHERE sets.name LIKE ? GROUP BY sets.name diff --git a/workout.ts b/workout.ts deleted file mode 100644 index 8eabe92..0000000 --- a/workout.ts +++ /dev/null @@ -1,8 +0,0 @@ -export default interface Workout { - name: string; - sets: number; - minutes: number; - seconds: number; - image: string; - steps: string; -}