Add date/time picker to EditSet - 1.115

This commit is contained in:
Brandon Presley 2023-01-08 18:00:23 +13:00
parent 5e6896eaba
commit e7f85a9954
4 changed files with 35 additions and 6 deletions

View File

@ -1,3 +1,4 @@
import {DateTimePickerAndroid} from '@react-native-community/datetimepicker'
import {
RouteProp,
useFocusEffect,
@ -29,6 +30,7 @@ export default function EditSet() {
const [weight, setWeight] = useState(set.weight?.toString())
const [newImage, setNewImage] = useState(set.image)
const [unit, setUnit] = useState(set.unit)
const [created, setCreated] = useState(new Date(set.created))
const [showRemove, setShowRemove] = useState(false)
const [removeImage, setRemoveImage] = useState(false)
const weightRef = useRef<TextInput>(null)
@ -83,7 +85,7 @@ export default function EditSet() {
const saved = await setRepo.save({
id: set.id,
name,
created: set.created || now,
created: created?.toISOString() || now,
reps: Number(reps),
weight: Number(weight),
unit,
@ -111,6 +113,22 @@ export default function EditSet() {
setShowRemove(false)
}, [])
const pickDate = useCallback(() => {
DateTimePickerAndroid.open({
value: created,
onChange: (_, date) => {
if (date === created) return
setCreated(date)
DateTimePickerAndroid.open({
value: date,
onChange: (__, time) => setCreated(time),
mode: 'time',
})
},
mode: 'date',
})
}, [created])
return (
<>
<StackHeader title="Edit set" />
@ -159,8 +177,8 @@ export default function EditSet() {
{typeof set.id === 'number' && settings.showDate && (
<AppInput
label="Created"
disabled
value={format(new Date(set.created), settings.date || 'P')}
value={format(created, settings.date || 'P')}
onPressOut={pickDate}
/>
)}

View File

@ -41,8 +41,8 @@ android {
missingDimensionStrategy "RNNotifications.reactNativeVersion", "reactNative60"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 36140
versionName "1.114"
versionCode 36141
versionName "1.115"
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
if (isNewArchitectureEnabled()) {

View File

@ -1,6 +1,6 @@
{
"name": "massive",
"version": "1.114",
"version": "1.115",
"private": true,
"license": "GPL-3.0-only",
"scripts": {
@ -13,6 +13,7 @@
"dependencies": {
"@babel/plugin-transform-flow-strip-types": "^7.19.0",
"@babel/preset-env": "^7.19.1",
"@react-native-community/datetimepicker": "^6.7.1",
"@react-native-masked-view/masked-view": "^0.2.7",
"@react-navigation/drawer": "^6.5.0",
"@react-navigation/native": "^6.0.13",

View File

@ -2160,6 +2160,15 @@ __metadata:
languageName: node
linkType: hard
"@react-native-community/datetimepicker@npm:^6.7.1":
version: 6.7.1
resolution: "@react-native-community/datetimepicker@npm:6.7.1"
dependencies:
invariant: ^2.2.4
checksum: b2eadbf7080ce6d131200e0189b260a6991cba7ce2ddc7a1f23bbb2e15a77288b847109bdad43b09eac11d376c8bea3e0934143c661ef350e3fe3f716111ac75
languageName: node
linkType: hard
"@react-native-community/eslint-config@npm:^2.0.0":
version: 2.0.0
resolution: "@react-native-community/eslint-config@npm:2.0.0"
@ -7270,6 +7279,7 @@ __metadata:
"@babel/plugin-transform-flow-strip-types": ^7.19.0
"@babel/preset-env": ^7.19.1
"@babel/runtime": ^7.12.5
"@react-native-community/datetimepicker": ^6.7.1
"@react-native-community/eslint-config": ^2.0.0
"@react-native-masked-view/masked-view": ^0.2.7
"@react-navigation/drawer": ^6.5.0