[Tech Debt] Change report date picker options to use date-range picker with quick-select buttons #2836

Open
opened 2026-02-28 20:30:09 -06:00 by GiteaMirror · 8 comments
Owner

Originally created by @MatissJanis on GitHub (Jan 18, 2026).

The current date-picker with quick select options has gotten ridiculously long. It looks quite bad on desktop and even worse on mobile.

Image

Objective:

Refactor it to use a date-range picker with quick-pick options.

The ideal solution would use react-aria as a base and extend it with the extras we need. This is because we already extensively use this dependency. Pulling in a new dependency could also work, but we need to evaluate it carefully (i.e. does it significantly increase the bundle size? is the dependency maintained? etc.)


Inspiration:

react-aria date-range picker: https://react-aria.adobe.com/DateRangePicker
Image

daterangepicker: http://www.daterangepicker.com
Image


Please post a screenshot mockup of your proposed UI/UX before sending a PR so we can discuss it. We do not assign issues to specific people.

Originally created by @MatissJanis on GitHub (Jan 18, 2026). The current date-picker with quick select options has gotten ridiculously long. It looks quite bad on desktop and even worse on mobile. <img width="1261" height="117" alt="Image" src="https://github.com/user-attachments/assets/d01e0e4a-6e9c-4a1f-8ff7-282943d9825b" /> ## Objective: Refactor it to use a date-range picker with quick-pick options. The ideal solution would use react-aria as a base and extend it with the extras we need. This is because we already extensively use this dependency. Pulling in a new dependency could also work, but we need to evaluate it carefully (i.e. does it significantly increase the bundle size? is the dependency maintained? etc.) --- ## Inspiration: react-aria date-range picker: https://react-aria.adobe.com/DateRangePicker <img width="336" height="348" alt="Image" src="https://github.com/user-attachments/assets/e6f9e16d-d793-4b32-bdb0-f218dcae69e1" /> daterangepicker: http://www.daterangepicker.com <img width="545" height="305" alt="Image" src="https://github.com/user-attachments/assets/a78112e9-86f4-44d8-99c2-2437c84a9f92" /> --- **Please post a screenshot mockup of your proposed UI/UX before sending a PR so we can discuss it.** We do not assign issues to specific people.
GiteaMirror added the good first issueuser interfaceresponsivehelp wanted labels 2026-02-28 20:30:10 -06:00
Author
Owner

@rznn7 commented on GitHub (Feb 7, 2026):

Hi!

Here is a proposition:

I assumed we still want to select at the month level, so react-aria's Calendar doesn't fit well (day-level only). I took visual inspiration from https://ant.design/components/date-picker#examples and built this using the existing component library (no new dependencies).

This replaces both the start/end Select dropdowns and the row of quick-select buttons with a single trigger button + popover.

Desktop:
Image

Mobile:
Image

Does this direction look good?

@rznn7 commented on GitHub (Feb 7, 2026): Hi! Here is a proposition: I assumed we still want to select at the month level, so react-aria's Calendar doesn't fit well (day-level only). I took visual inspiration from https://ant.design/components/date-picker#examples and built this using the existing component library (no new dependencies). This replaces both the start/end Select dropdowns and the row of quick-select buttons with a single trigger button + popover. Desktop: <img width="2880" height="1800" alt="Image" src="https://github.com/user-attachments/assets/27711745-249e-405c-9d60-be009d47f24c" /> Mobile: <img width="300" height="2436" alt="Image" src="https://github.com/user-attachments/assets/f038511d-5d3c-43e4-a0f6-1f73612f2553" /> Does this direction look good?
Author
Owner

@MatissJanis commented on GitHub (Feb 10, 2026):

That's really good @rznn7 ! I will have some small nitpicks, but overall LGTM!

Some immediate nitpicks:

  • can we get the buttons for the months in some different color so it's obvious they are clickable months?
  • how can the user select a specific date? The screenshots show only months
@MatissJanis commented on GitHub (Feb 10, 2026): That's really good @rznn7 ! I will have some small nitpicks, but overall LGTM! Some immediate nitpicks: - can we get the buttons for the months in some different color so it's obvious they are clickable months? - how can the user select a specific **date**? The screenshots show only months
Author
Owner

@rznn7 commented on GitHub (Feb 10, 2026):

Thanks for your feedbacks @MatissJanis !


  • can we get the buttons for the months in some different color so it's obvious they are clickable months?

I am not sure what you mean, are you talking about the "Jan", "Feb", etc. buttons? There is an hover effect, do you think we should make it more obvious that it is clickable?

Image



  • how can the user select a specific date? The screenshots show only months

I am not yet very aware of how everything works but the current code only allow selecting months right? That's why I choose this behavior. Is selecting more precise ranges a feature we'd want to implement? If so we should indeed design the new picker accordingly, though it would add quite a bit of complexity to the implementation.

Image
@rznn7 commented on GitHub (Feb 10, 2026): Thanks for your feedbacks @MatissJanis ! <br> > * can we get the buttons for the months in some different color so it's obvious they are clickable months? I am not sure what you mean, are you talking about the "Jan", "Feb", etc. buttons? There is an hover effect, do you think we should make it more obvious that it is clickable? <img width="500" alt="Image" src="https://github.com/user-attachments/assets/86d9a29a-d9a9-474d-82d6-12506f14ef26" /> <br><br> > * how can the user select a specific date? The screenshots show only months I am not yet very aware of how everything works but the current code only allow selecting months right? That's why I choose this behavior. Is selecting more precise ranges a feature we'd want to implement? If so we should indeed design the new picker accordingly, though it would add quite a bit of complexity to the implementation. <img width="1230" height="578" alt="Image" src="https://github.com/user-attachments/assets/0b5e0b57-c269-42b4-9575-e776684119b0" />
Author
Owner

@MatissJanis commented on GitHub (Feb 10, 2026):

I am not sure what you mean, are you talking about the "Jan", "Feb", etc. buttons? There is an hover effect, do you think we should make it more obvious that it is clickable?

Yep. Exactly those. Mobile doesn't have "hover", so we should account for that. I think if we make the background light gray would be sufficient.

  • how can the user select a specific date? The screenshots show only months

I am not yet very aware of how everything works but the current code only allow selecting months right? That's why I choose this behavior. Is selecting more precise ranges a feature we'd want to implement? If so we should indeed design the new picker accordingly, though it would add quite a bit of complexity to the implementation.

I think a specific date range is definitely a useful feature to have. It also looks like pikaday - our current datepicker - has been archived and is no longer maintained. So switching away from it would actually be quite a good idea.

React aria has a good daterange picker. Maybe we could use that as a base since we already use so many of the react-aria components.

@MatissJanis commented on GitHub (Feb 10, 2026): > I am not sure what you mean, are you talking about the "Jan", "Feb", etc. buttons? There is an hover effect, do you think we should make it more obvious that it is clickable? Yep. Exactly those. Mobile doesn't have "hover", so we should account for that. I think if we make the background light gray would be sufficient. > > * how can the user select a specific date? The screenshots show only months > > I am not yet very aware of how everything works but the current code only allow selecting months right? That's why I choose this behavior. Is selecting more precise ranges a feature we'd want to implement? If so we should indeed design the new picker accordingly, though it would add quite a bit of complexity to the implementation. I think a specific date range is definitely a useful feature to have. It also looks like [pikaday](https://github.com/Pikaday/Pikaday) - our current datepicker - has been archived and is no longer maintained. So switching away from it would actually be quite a good idea. [React aria](https://react-aria.adobe.com/DateRangePicker) has a good daterange picker. Maybe we could use that as a base since we already use so many of the react-aria components.
Author
Owner

@rznn7 commented on GitHub (Feb 17, 2026):

Sorry, for the delay!

Here is quick test with react aria component:

Image

Would it fit? (maybe with a background light gray on days as we discussed).

@rznn7 commented on GitHub (Feb 17, 2026): Sorry, for the delay! Here is quick test with react aria component: <img width="1457" height="914" alt="Image" src="https://github.com/user-attachments/assets/0728e530-b1ba-4229-8703-7a4d1c1075fa" /> Would it fit? (maybe with a background light gray on days as we discussed).
Author
Owner

@MatissJanis commented on GitHub (Feb 18, 2026):

Love it!

@MatissJanis commented on GitHub (Feb 18, 2026): Love it!
Author
Owner

@youngcw commented on GitHub (Feb 18, 2026):

Some more things that would be wonderful to add while you are looking at this. Either add an option to exclude the current month in the ranges, or allow the live range to be set to any range that will update every month. Currently you have to include the current month to use the live option.

@youngcw commented on GitHub (Feb 18, 2026): Some more things that would be wonderful to add while you are looking at this. Either add an option to exclude the current month in the ranges, or allow the live range to be set to any range that will update every month. Currently you have to include the current month to use the live option.
Author
Owner

@matt-fidd commented on GitHub (Feb 19, 2026):

Sorry, for the delay!

Here is quick test with react aria component:

Image

Would it fit? (maybe with a background light gray on days as we discussed).

This looks brilliant! Allowing selecting days is definitely the way to go, if people want months they can easily hit the 1st of the month they'd like.

@matt-fidd commented on GitHub (Feb 19, 2026): > Sorry, for the delay! > > Here is quick test with react aria component: > > <img width="1457" height="914" alt="Image" src="https://github.com/user-attachments/assets/0728e530-b1ba-4229-8703-7a4d1c1075fa" /> > > Would it fit? (maybe with a background light gray on days as we discussed). This looks brilliant! Allowing selecting days is definitely the way to go, if people want months they can easily hit the 1st of the month they'd like.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#2836