You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Update date picker to allow typing in dates #101117
Problem
Date fields in New Expensify are picker-only. You have to select a date from the calendar and can't type one in. A partner reported this as friction, and the behavior is consistent across the app.
Background
Typing into date fields was originally disabled on purpose, for validation reasons. Design and engineering are now aligned on revisiting that decision.
Proposed solution
Allow typing into date fields using a guided (masked) input that enforces the expected format as you type, while keeping the calendar picker available for selection. Validation should stay intact.
References for the guided-input behavior only — not the visual design:
I think we'd just disable the typing interaction on mobile.
What is the reasoning for that? Not saying we shouldn't, but just want to make sure I understand. Is it mostly just to keep the keyboard from popping open so we have space to see the calendars?
Proto is feeling NICE! Just left a comment in Slack about how we might validate the year part, since you get can yourself into a weird half-entered state there.
What is the reasoning for that? Not saying we shouldn't, but just want to make sure I understand. Is it mostly just to keep the keyboard from popping open so we have space to see the calendars?
Yeah that was my thinking. That'd we'd either have to have it so that we show the keyboard and not calendar dropdown and then add a way to override it so you can show the calendar picker and it'd hide the keyboard. We could do both, I just think it'd be safe to start without it? Happy to be challenged here!
Just left a comment in Slack about how we might validate the year part, since you get can yourself into a weird half-entered state there.
Good q. I think we'd validate on submit of the form to avoid having errors while you type. That's what MUI does and it doesn't feel great imo:
CleanShot.2026-09-16.at.9.50.57.AM.mp4
And with ours the error is even more in-your-face so I suspect it'd feel even worse.
Here's the prototype and the mocks are posted above. Is that enough for you to start @Krishna2323 ? I assume there'll be questions as we go so we can deal with them as they pop up :)
Activity
melvin-bot commentedon Sep 14, 2026
Triggered auto assignment to @dubielzyk-expensify (
Design), see these Stack Overflow questions for more details.chuckdries commentedon Sep 14, 2026
A useful implementation reference might be react-aria's DateField, which implements masked date input behavior without showing a picker
dubielzyk-expensify commentedon Sep 15, 2026
Added the prototype in Slack here.
I think we'd just disable the typing interaction on mobile.
cc @Expensify/design
shawnborton commentedon Sep 15, 2026
What is the reasoning for that? Not saying we shouldn't, but just want to make sure I understand. Is it mostly just to keep the keyboard from popping open so we have space to see the calendars?
Proto is feeling NICE! Just left a comment in Slack about how we might validate the year part, since you get can yourself into a weird half-entered state there.
JmillsExpensify commentedon Sep 15, 2026
Going to prioritize this as part of #convert and we can work with @Krishna2323 on it.
dubielzyk-expensify commentedon Sep 15, 2026
Yeah that was my thinking. That'd we'd either have to have it so that we show the keyboard and not calendar dropdown and then add a way to override it so you can show the calendar picker and it'd hide the keyboard. We could do both, I just think it'd be safe to start without it? Happy to be challenged here!
Good q. I think we'd validate on submit of the form to avoid having errors while you type. That's what MUI does and it doesn't feel great imo:
CleanShot.2026-09-16.at.9.50.57.AM.mp4
And with ours the error is even more in-your-face so I suspect it'd feel even worse.
dubielzyk-expensify commentedon Sep 15, 2026
Here's the prototype and the mocks are posted above. Is that enough for you to start @Krishna2323 ? I assume there'll be questions as we go so we can deal with them as they pop up :)
shawnborton commentedon Sep 16, 2026
Down to start without it!
JmillsExpensify commentedon Sep 16, 2026
Same! Prototype looks great.
14 remaining items
melvin-bot commentedon Sep 24, 2026
Current assignees @Krishna2323 and @marufsharifi are eligible for the External assigner, not assigning anyone new.
melvin-bot commentedon Sep 24, 2026
Unable to auto-create job on Upwork. The BZ team member should create it manually for this issue.
melvin-bot commentedon Oct 1, 2026
@marufsharifi Whoops! This issue is 2 days overdue. Let's get this updated quick!
melvin-bot commentedon Oct 5, 2026
@marufsharifi 6 days overdue. This is scarier than being forced to listen to Vogon poetry!
melvin-bot commentedon Oct 7, 2026
@marufsharifi Now this issue is 8 days overdue. Are you sure this should be a Daily? Feel free to change it!
melvin-bot commentedon Oct 9, 2026
@marufsharifi 10 days overdue. I'm getting more depressed than Marvin.
marufsharifi commentedon Oct 13, 2026
Still Work in progress
melvin-bot commentedon Oct 20, 2026
@marufsharifi Whoops! This issue is 2 days overdue. Let's get this updated quick!
marufsharifi commentedon Oct 21, 2026
PR is still under review