Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

React Native Windows: value except only Date as object, onchange not triggered if unselect date #807

Open
kurpiel opened this issue Sep 1, 2023 · 1 comment

Comments

@kurpiel
Copy link

kurpiel commented Sep 1, 2023

Bug report

Summary

datetimepicker.windows.js

  1. I want to set undefined or null as date value but it is prevented by validation. If i comment that line eveything is working fine.
  2. If unselect the date in the datepicker by clicking on the current selected date, the onChange Event is never fired. So i never know how the state of the picker is.

Reproducible sample code

<DateTimePicker
      style={styles.datePicker}
      value={null} // NOT POSSIBLE to set NULL
      display="calendar"
      firstDayOfWeek={1}
      onChange={(event: DateTimePickerEvent, date?: Date) => {
          // NOT FIRED if unselect the date
      }}
      onError={(arg: Error) => console.log('GKU Date Error', arg)}/>

Steps to reproduce

--

Describe what you expected to happen:

  1. Null as initial value should be allows
  2. Validation for value in utils.js should be removed because it is already checked. And if i remove the init validation (sharedPropsValidation) everything works fine:
export default function RNDateTimePickerQWE(
  props: WindowsNativeProps,
): React.Node {
  sharedPropsValidation({value: props?.value}); // **REMOVING THIS LINE FIXES THE ISSUE** 

  const localProps = {
    dayOfWeekFormat: props.dayOfWeekFormat,
    dateFormat: props.dateFormat,
    firstDayOfWeek: props.firstDayOfWeek,
    maxDate: props.maximumDate ? props.maximumDate.getTime() : undefined, // time in milliseconds
    minDate: props.minimumDate ? props.minimumDate.getTime() : undefined, // time in milliseconds
    onChange: props.onChange,
    placeholderText: props.placeholderText,
    selectedDate: props.value ? props.value.getTime() : undefined, // time in milliseconds
    style: [styles.rnDatePicker, props.style],
  };

...

Environment info

npx react-native info output:

System:
  OS: Windows 10 10.0.22621
  CPU: (16) x64 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz
  Memory: 13.63 GB / 31.73 GB
Binaries:
  Node:
    version: 16.19.1
    path: C:\Program Files\nodejs\node.EXE
  Yarn:
    version: 3.6.0
    path: C:\Program Files (x86)\Yarn\bin\yarn.CMD
  npm:
    version: 8.19.3
    path: C:\Program Files\nodejs\npm.CMD
  Watchman: Not Found
SDKs:
  Android SDK: Not Found
  Windows SDK:
    AllowDevelopmentWithoutDevLicense: Enabled
    AllowAllTrustedApps: Enabled
    Versions:
      - 10.0.18362.0
      - 10.0.19041.0
      - 10.0.22000.0
      - 10.0.22621.0
IDEs:
  Android Studio: AI-222.4459.24.2221.10121639
  Visual Studio:
    - 17.5.33502.453 (Visual Studio Community 2022)
    - 16.11.33423.256 (Visual Studio Community 2019)
Languages:
  Java: Not Found
  Ruby: Not Found
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.72.4
    wanted: 0.72.4
  react-native-windows:
    installed: 0.72.7
    wanted: 0.72.7
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: Not found
  newArchEnabled: Not found

datetimepicker version: 4.5.0

React Native Windows

@JB712
Copy link

JB712 commented May 31, 2024

I have the same problem: I use this package for forms and in some of them I would like to unselect/erase the date.
I have no workaround for the moment 😕

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants