Remove date related logic

This kept displaying the wrong date/time for certain timezones.
So i'll just show the actual ISO date we store in the database.
Maybe later i'll figure out what was going on here or use a
date library (probably not).
This commit is contained in:
Brandon Presley 2022-08-20 16:38:18 +12:00
parent 4c185f0346
commit fd66bd3ab3
4 changed files with 42 additions and 85 deletions

View File

@ -1,9 +1,7 @@
import React, {useRef, useState} from 'react';
import {ScrollView, StyleSheet} from 'react-native';
import DateTimePickerModal from 'react-native-modal-datetime-picker';
import {ScrollView, StyleSheet, Text} from 'react-native';
import {Button, TextInput} from 'react-native-paper';
import Set from './set';
import {format} from './time';
export default function SetForm({
save,
@ -15,90 +13,66 @@ export default function SetForm({
const [name, setName] = useState(set.name);
const [reps, setReps] = useState(set.reps.toString());
const [weight, setWeight] = useState(set.weight.toString());
const [created, setCreated] = useState(new Date(set.created));
const [unit, setUnit] = useState(set.unit);
const [showDate, setShowDate] = useState(false);
const [selection, setSelection] = useState({
start: 0,
end: set.reps.toString().length,
});
const weightRef = useRef<any>(null);
const onConfirm = (date: Date) => {
setCreated(date);
setShowDate(false);
};
const handleSubmit = () => {
save({
name,
reps: Number(reps),
created: created.toISOString(),
created: set.created,
weight: Number(weight),
id: set.id,
unit,
});
};
const textInputs = (
<>
<TextInput
style={styles.marginBottom}
label="Name"
value={name}
onChangeText={setName}
autoCorrect={false}
/>
<TextInput
style={styles.marginBottom}
label="Reps"
keyboardType="numeric"
value={reps}
onChangeText={setReps}
onSubmitEditing={() => weightRef.current?.focus()}
selection={selection}
onSelectionChange={e => setSelection(e.nativeEvent.selection)}
autoFocus
selectTextOnFocus
blurOnSubmit={false}
/>
<TextInput
style={styles.marginBottom}
label="Weight"
keyboardType="numeric"
value={weight}
onChangeText={setWeight}
onSubmitEditing={handleSubmit}
ref={weightRef}
selectTextOnFocus
/>
<TextInput
style={styles.marginBottom}
label="Unit (kg)"
value={unit}
onChangeText={setUnit}
onSubmitEditing={handleSubmit}
/>
</>
);
return (
<>
<ScrollView style={{height: '90%'}}>
{textInputs}
<Button
<TextInput
style={styles.marginBottom}
icon="calendar-outline"
onPress={() => setShowDate(true)}>
{format(created)}
</Button>
<DateTimePickerModal
isVisible={showDate}
mode="datetime"
onConfirm={onConfirm}
onCancel={() => setShowDate(false)}
date={created}
label="Name"
value={name}
onChangeText={setName}
autoCorrect={false}
selectTextOnFocus
/>
<TextInput
style={styles.marginBottom}
label="Reps"
keyboardType="numeric"
value={reps}
onChangeText={setReps}
onSubmitEditing={() => weightRef.current?.focus()}
selection={selection}
onSelectionChange={e => setSelection(e.nativeEvent.selection)}
autoFocus
selectTextOnFocus
blurOnSubmit={false}
/>
<TextInput
style={styles.marginBottom}
label="Weight"
keyboardType="numeric"
value={weight}
onChangeText={setWeight}
onSubmitEditing={handleSubmit}
ref={weightRef}
selectTextOnFocus
/>
<TextInput
style={styles.marginBottom}
label="Unit (kg)"
value={unit}
onChangeText={setUnit}
onSubmitEditing={handleSubmit}
selectTextOnFocus
/>
<Text>{set.created?.replace('T', ' ')}</Text>
</ScrollView>
<Button mode="contained" icon="save" onPress={handleSubmit}>
Save

View File

@ -1,11 +1,10 @@
import {NavigationProp, useNavigation} from '@react-navigation/native';
import React, {useCallback, useContext, useMemo, useState} from 'react';
import React, {useCallback, useContext, useState} from 'react';
import {GestureResponderEvent, Text} from 'react-native';
import {Divider, List, Menu} from 'react-native-paper';
import {DatabaseContext} from './App';
import {HomePageParams} from './HomePage';
import Set from './set';
import {format} from './time';
export default function SetItem({
item,
@ -20,7 +19,6 @@ export default function SetItem({
}) {
const [showMenu, setShowMenu] = useState(false);
const [anchor, setAnchor] = useState({x: 0, y: 0});
const date = useMemo(() => format(new Date(item.created)), [item.created]);
const db = useContext(DatabaseContext);
const navigation = useNavigation<NavigationProp<HomePageParams>>();
@ -32,7 +30,6 @@ export default function SetItem({
const copy = useCallback(() => {
const set: Set = {...item};
set.created = new Date().toISOString();
set.id = 0;
setShowMenu(false);
navigation.navigate('EditSet', {set});
@ -63,7 +60,7 @@ export default function SetItem({
style={{
alignSelf: 'center',
}}>
{dates ? date : null}
{dates ? item.created?.replace('T', ' ') : null}
<Menu
anchor={anchor}
visible={showMenu}

View File

@ -31,7 +31,6 @@
"react-native-file-access": "^2.4.3",
"react-native-gesture-handler": "^2.5.0",
"react-native-linear-gradient": "^2.6.2",
"react-native-modal-datetime-picker": "^13.1.2",
"react-native-pager-view": "^5.4.24",
"react-native-paper": "^4.12.2",
"react-native-reanimated": "^2.9.0",

View File

@ -8020,7 +8020,6 @@ __metadata:
react-native-file-access: ^2.4.3
react-native-gesture-handler: ^2.5.0
react-native-linear-gradient: ^2.6.2
react-native-modal-datetime-picker: ^13.1.2
react-native-pager-view: ^5.4.24
react-native-paper: ^4.12.2
react-native-reanimated: ^2.9.0
@ -9680,18 +9679,6 @@ __metadata:
languageName: node
linkType: hard
"react-native-modal-datetime-picker@npm:^13.1.2":
version: 13.1.2
resolution: "react-native-modal-datetime-picker@npm:13.1.2"
dependencies:
prop-types: ^15.7.2
peerDependencies:
"@react-native-community/datetimepicker": ">=3.0.0"
react-native: ">=0.65.0"
checksum: 70a7875dbeb550f97aa26786262a434a5c88dfd048e642fa6e4a7e0b8411c8ff191463a5bb4a82bb18d603cc3b2ef60891bfcaa3144b9e0a40cd756bf662b4a1
languageName: node
linkType: hard
"react-native-pager-view@npm:^5.4.24":
version: 5.4.24
resolution: "react-native-pager-view@npm:5.4.24"