mirror of
https://github.com/actualbudget/actual.git
synced 2026-07-15 14:43:36 -05:00
[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
No Branch/Tag Specified
master
tabedzki/feat/replacing-month-picker-with-day-picker
enforce-append-only-migrations-ci
delay-initial-sync-until-loaded
jfdoming/mobile-app-build
cross-version-sync-compat
claude/error-codes-worker-boundary-26i5uu
jfdoming/api-tokens-part-1
jfdoming/api-tokens-part-2
jfdoming/api-tokens-part-3
jfdoming/mobile-app-updates
api-browser-custom-data-dir
claude/budget-version-migration-compat-151jlr
claude/worker-error-serialization-9iqtl7
claude/react-table-library-research-afx83z
claude/issue-8401-regression-test-9nw9l3
jfdoming/mobile-app-foundation-part-1
jfdoming/mobile-app-scaffold
release
ai-fix-cleanup-def-8290
claude/relaxed-shannon-jusywa
claude/fervent-keller-s6f2fq
claude/determined-feynman-st1y9z
claude/wizardly-einstein-vi2wce
claude/sweet-albattani-7nseio
feat/bank-sync-per-budget-file
claude/affectionate-cannon-y0kc82
claude/dependabot-findings-m9pgmb
claude/mac-app-ios-publish-zjs1lz
claude/vigilant-tesla-aiiyos
depot-migrate-secrets-1781296330308
claude/quirky-cerf-v5qck7
claude/animation-removal-alternative-2etfh1
claude/netlify-preview-comments-consolidate-9XPYa
osc/7391-error-boundaries-reports
claude/pensive-dijkstra-7DYui
claude/server-app-version-mismatch-HTCGv
claude/pr-8027-review-feedback-mELuO
claude/zealous-wozniak-e5pO0
claude/intelligent-heisenberg-BSHJq
claude/translation-download-refactor-jFRsO
claude/mobile-performance-ideas-G9PAO
claude/github-issue-7988-5A5ly
blacksmith-migration-ff70d2d
claude/great-mayer-KRvOk
claude/react-native-ios-compilation-fcJh5
claude/serene-goldberg-58xv0
claude/kind-euler-LVG3K
release-automation/edge-nightly
7710-bundle-migrations
claude/fix-docker-build-error-WMfed
claude/llm-compatible-release-notes-t20Nr
7710-tests-tdd
cursor/transaction-table-rewrite-f077
claude/plan-ci-secure-context-OtEe1
claude/fix-issue-7667-DPXi3
cursor/resolve-pr-7449-ee11
claude/fix-typescript-build-error-JPtZ5
copilot/add-repository-configs-to-packages
worktree-compressed-drifting-ritchie
claude/api-consumer-verification-kfz1K
pr-7454
claude/fix-issue-7410-LLLQ4
revert-7281-generate-icons
react-query-useSchedules
copilot/sub-pr-6140
package-upgrades
v26.7.0
v26.6.0
v26.5.2
v26.5.1
v26.5.0
v26.4.0
v26.3.0
v26.2.1
v26.2.0
v26.1.0
v25.12.0
v25.11.0
v25.10.0
v25.9.0
v25.8.0
v25.7.1
v25.7.0
v25.6.1
v25.6.0
v25.5.0
v25.4.0
v25.3.1
v25.3.0
v25.2.1
v25.2.0
v25.1.0
v24.12.0
v24.11.0
v24.10.1
v24.10.0
v24.9.0
v24.8.0
v24.7.0
v24.6.0
v24.5.0
v24.4.0
v24.3.0
v24.2.0
v24.1.0
v23.12.0
v23.11.0
v23.10.0
v23.9.0
v23.8.1
v23.8.0
v23.7.2
v23.7.1
v23.7.0
v23.6.0
v23.5.0
v23.4.2
v23.4.1
v23.4.0
v23.3.2
v23.3.0
v23.2.9
v23.2.5
v23.1.12
v22.12.9
Labels
Clear labels
AI generated
API
bank sync
budgeting
bug
can’t replicate
dependencies
docker
documentation
electron
experimental feature
feature
feedback
goal templates
good first issue
help wanted
importers
maintenance
needs info
needs testing
needs triage
needs votes
openid
payees
pull-request
regression
reports
responsive
rules
schedules
server
✨ merged
split transactions
tech debt
tech-support
theme
transaction import
transaction reconciliation
transactions
translations
upstream
user interface
✅ approved
wontfix
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/actual#2836
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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.
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

daterangepicker: http://www.daterangepicker.com

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.
@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:

Mobile:

Does this direction look good?
@MatissJanis commented on GitHub (Feb 10, 2026):
That's really good @rznn7 ! I will have some small nitpicks, but overall LGTM!
Some immediate nitpicks:
@rznn7 commented on GitHub (Feb 10, 2026):
Thanks for your feedbacks @MatissJanis !
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?
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.
@MatissJanis commented on GitHub (Feb 10, 2026):
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.
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.
@rznn7 commented on GitHub (Feb 17, 2026):
Sorry, for the delay!
Here is quick test with react aria component:
Would it fit? (maybe with a background light gray on days as we discussed).
@MatissJanis commented on GitHub (Feb 18, 2026):
Love it!
@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.
@matt-fidd commented on GitHub (Feb 19, 2026):
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.