henninghall / react-native-date-picker

React Native Date Picker is datetime picker for Android and iOS. It includes date, time and datetime picker modes. The datepicker is customizable and is supporting different languages. It's written with native code to achieve the best possible look, feel and performance.
MIT License
2.25k stars 344 forks source link

onDateChange not updating fast enough, reverts to previous state upon not being able to register the scroll-select (iOS) #453

Closed Guide4Ever closed 1 year ago

Guide4Ever commented 2 years ago

Issue

onDateChange function is not updating fast enough. Sometimes when I quickly scroll and select let say 4 numbers (sequentially), the last (in our case 4th value) is not registered thus reverting back to the 3rd. That occurs with each scroll wheel separately. It's not an issue of combined scrolling of i.e. days and months. Individual scroll picker inherits this issue.

The last value upon fast scroll-select does not get updated/ registered by onDateChange function, it locks to the previous state. (short explanation).

Expected Behavior

Should register the last value even if it's being fast scrolled.

Code

      <DatePicker
        scrollRef={scrollRef}
        mode="time"
        date={date}
        locale="en"
        open={pickerOpen}
        onDateChange={changeFunction}
        minuteInterval={15}
      />

Environment

  1. react-native -v: 0.66.1
  2. node -v: v16.13.0
  3. npm -v: 8.1.0
  4. target platform: iOS (could be Android too, haven't tested there yet)
  5. operating system: macOS (emulator Xcode)
henninghall commented 2 years ago

Hi, thanks for reporting this. Could you provide a video where this happens?

DanielZyger commented 2 years ago

same problem here

kollinmurphy commented 1 year ago

A very similar thing is happening to me. I'm using the modal date & time pickers. When the confirm button is clicked too soon, it calls onConfirm with the original date. This is happening on both iOS and Android. I've attached a screen recording of it happening on the iOS simulator. I'm using the latest version, 4.2.6.

https://user-images.githubusercontent.com/65209071/212437881-341ab122-cfdb-4020-b62d-13988891bb58.mov

DevGW commented 1 year ago

This should be expected behavior.

on iOS:

does not happen until the picker stops moving... I'm assuming it's the same in Android (but unsure)

dcdavidheisnam commented 1 year ago

It's happening on Android as well. Quite confusing when it happens during regular use.

dcdavidheisnam commented 1 year ago

onDateChange is firing late even when the animation has stopped. For example, when I switch AM to PM, it takes a whole second before the onDateChange is fired. This really breaks the user experience because we're going to have to expect the user to wait before clicking on Save or Confirm.

henninghall commented 1 year ago

Let's keep the discussions around this problem in this issue,