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

View File

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

View File

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

View File

@ -2160,6 +2160,15 @@ __metadata:
languageName: node languageName: node
linkType: hard 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": "@react-native-community/eslint-config@npm:^2.0.0":
version: 2.0.0 version: 2.0.0
resolution: "@react-native-community/eslint-config@npm: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/plugin-transform-flow-strip-types": ^7.19.0
"@babel/preset-env": ^7.19.1 "@babel/preset-env": ^7.19.1
"@babel/runtime": ^7.12.5 "@babel/runtime": ^7.12.5
"@react-native-community/datetimepicker": ^6.7.1
"@react-native-community/eslint-config": ^2.0.0 "@react-native-community/eslint-config": ^2.0.0
"@react-native-masked-view/masked-view": ^0.2.7 "@react-native-masked-view/masked-view": ^0.2.7
"@react-navigation/drawer": ^6.5.0 "@react-navigation/drawer": ^6.5.0