themesberg / flowbite-react

Official React components built for Flowbite and Tailwind CSS
https://flowbite-react.com
MIT License
1.77k stars 395 forks source link

Datepicker is not allowing clearing date #1366

Open bvedad opened 2 months ago

bvedad commented 2 months ago

Summary

Currently, the Datepicker component in Flowbite-React allows users to select a date, but lacks a fully functional clear button that can reset the date to null. The clear button only resets the date to the original value. I propose adding a flag like isClearAction to the onSelectedDateChanged callback function. This flag would be set to true when the clear button is used, allowing developers to explicitly handle the clear action by setting the date to null if desired.

Example implementation:

<Controller
  control={control}
  name="birthday"
  render={({ field: { onChange, value } }) => (
    <Datepicker
      onSelectedDateChanged={(date, isClear) => {
        if (isClear) {
          onChange(null); // Explicitly handle clear action
          return;
        }
        onChange(date); // Handle date change normally
      }}
      placeholder="Please enter date"
      ref={elementRef}
      value={value ? moment(value).format('YYYY-MM-DD') : ''}
    />
  )}
/>

This feature would enable developers to easily implement scenarios where a user might need to completely remove a previously selected date.

Context

In various applications, especially in forms involving date entries like event planning, user registrations, or bookings, having the capability to clear a date completely is crucial. Currently, without this feature, users of our application cannot remove a date once selected; they can only change it. This limitation affects the flexibility and user experience of the application. By implementing this feature, we will provide a more robust and intuitive interaction for users who need to reset their date selections entirely.