react-native-date-picker
react-native-date-picker copied to clipboard
Incorrect minuteInterval time returned
Describe the bug This was previously raised as issue #666, but incorrectly dismissed as fixed in version 4.2.12
The problem is, that if you open the datetime picker and immediately press 'Confirm', without having altered any of the displayed date/time values, then the returned value will not be rounded to the interval time.
Expected behavior If you're using the minuteInterval prop and press Confirm, then the returned value should always be the floored value as displayed in the datetime picker.
To Reproduce
import React, {useState} from 'react';
import {SafeAreaView, Text, TouchableOpacity, View} from 'react-native';
import DatePicker from 'react-native-date-picker';
export function TestScreen() {
const [date, setDate] = useState<Date>();
const [open, setOpen] = useState(false);
return (
<SafeAreaView
style={{display: 'flex', flex: 1, justifyContent: 'center', alignItems: 'center'}}
>
<View>
<TouchableOpacity
onPress={() => setOpen(true)}
style={{minWidth: '50%', backgroundColor: 'lightblue', padding: 8, borderRadius: 4}}
>
<Text style={{color: 'black', fontWeight: 'bold', fontSize: 20}}>
{date?.toDateString()} - {date?.toLocaleTimeString()}
</Text>
</TouchableOpacity>
<DatePicker
modal
mode={'datetime'}
open={open}
date={new Date()}
minuteInterval={5}
onConfirm={newDate => {
setOpen(false);
setDate(newDate);
}}
onCancel={() => {
setOpen(false);
setDate(undefined);
}}
/>
</View>
</SafeAreaView>
);
}
Smartphone Only tested on Android "react-native": "0.74.3", "react-native-date-picker": "^5.0.7",