import {format} from 'date-fns'; import React, {useContext} from 'react'; import {StyleSheet, Text} from 'react-native'; import {Button, Dialog, Portal, TextInput} from 'react-native-paper'; import {DatabaseContext} from './App'; import Set from './set'; export default function EditSet({ onSave, set, setSet, }: { onSave: () => void; set?: Set; setSet: (set?: Set) => void; }) { const db = useContext(DatabaseContext); const save = async () => { 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], ); setSet(undefined); onSave(); }; return ( setSet(undefined)}> {set?.id ? `Edit "${set.name}"` : 'Add a set'} setSet({...set, name})} autoCorrect={false} /> setSet({...set, reps})} /> setSet({...set, weight})} onSubmitEditing={save} /> setSet({...set, unit})} onSubmitEditing={save} /> {format( set?.created ? new Date(set.created) : new Date(), 'PPPP p', )} ); } const styles = StyleSheet.create({ text: { marginBottom: 10, }, title: { fontSize: 20, marginBottom: 10, }, });