Prevent setting timer on update

This commit is contained in:
Brandon Presley 2022-07-09 15:37:22 +12:00
parent d1e3255a28
commit 25ce5d9aac
2 changed files with 31 additions and 28 deletions

View File

@ -6,37 +6,48 @@ import {DatabaseContext} from './App';
import Set from './set';
export default function EditSet({
onSave,
onUpdate,
onCreate,
set,
setSet,
}: {
onSave: () => void;
onUpdate: () => void;
onCreate: () => void;
set?: Set;
setSet: (set?: Set) => void;
}) {
const db = useContext(DatabaseContext);
const update = async () => {
console.log(`${EditSet.name}.${update.name}`, {set});
await db.executeSql(
`INSERT INTO sets(name, reps, weight, created, unit) VALUES (?,?,?,?,?)`,
[
set?.name,
set?.reps,
set?.weight,
new Date().toISOString(),
set?.unit || 'kg',
],
);
onUpdate();
};
const create = async () => {
console.log(`${EditSet.name}.${create.name}`, {set});
await db.executeSql(
`UPDATE sets SET name = ?, reps = ?, weight = ?, unit = ? WHERE id = ?`,
[set?.name, set?.reps, set?.weight, set?.unit, set?.id],
);
onCreate();
};
const save = async () => {
if (!set?.name || set?.reps === undefined || set?.weight === undefined)
return;
if (!set?.id)
await db.executeSql(
`INSERT INTO sets(name, reps, weight, created, unit) VALUES (?,?,?,?,?)`,
[
set?.name,
set?.reps,
set?.weight,
new Date().toISOString(),
set?.unit || 'kg',
],
);
else
await db.executeSql(
`UPDATE sets SET name = ?, reps = ?, weight = ?, unit = ? WHERE id = ?`,
[set.name, set.reps, set.weight, set.unit, set.id],
);
if (set?.id) await update();
else await create();
setSet(undefined);
onSave();
};
return (
@ -100,8 +111,4 @@ const styles = StyleSheet.create({
text: {
marginBottom: 10,
},
title: {
fontSize: 20,
marginBottom: 10,
},
});

View File

@ -96,17 +96,13 @@ export default function HomePage() {
refreshing={refreshing}
onRefresh={refreshLoader}
/>
<EditSet set={edit} setSet={setEdit} onSave={save} />
<EditSet set={edit} setSet={setEdit} onCreate={save} onUpdate={refresh} />
<MassiveFab onPress={() => setEdit({} as Set)} />
</View>
);
}
const styles = StyleSheet.create({
name: {
fontSize: 18,
},
container: {
flexGrow: 1,
padding: 10,