Skip to content

Update date picker to allow typing in dates #101117

Open

Description

@melvin-bot

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:

Next steps

  • Design to spec the guided input: format, placeholder behavior, error states, and locale handling.
  • Apply the pattern consistently to all date fields in the app, not just one surface.

Reported in Slack.

Issue OwnerCurrent Issue Owner: @marufsharifi

Activity

  1. melvin-bot commented on Sep 14, 2026

    @melvin-bot
    Author

    Triggered auto assignment to @dubielzyk-expensify (Design), see these Stack Overflow questions for more details.

  2. chuckdries commented on Sep 14, 2026

    @chuckdries
    Contributor

    A useful implementation reference might be react-aria's DateField, which implements masked date input behavior without showing a picker

  3. dubielzyk-expensify commented on Sep 15, 2026

    @dubielzyk-expensify
    Contributor

    Added the prototype in Slack here.

    Image

    I think we'd just disable the typing interaction on mobile.

    cc @Expensify/design

  4. shawnborton commented on Sep 15, 2026

    @shawnborton
    Contributor

    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.

  5. JmillsExpensify commented on Sep 15, 2026

    @JmillsExpensify
    Contributor

    Going to prioritize this as part of #convert and we can work with @Krishna2323 on it.

  6. dubielzyk-expensify commented on Sep 15, 2026

    @dubielzyk-expensify
    Contributor

    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.

  7. dubielzyk-expensify commented on Sep 15, 2026

    @dubielzyk-expensify
    Contributor

    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 :)

  8. shawnborton commented on Sep 16, 2026

    @shawnborton
    Contributor

    We could do both, I just think it'd be safe to start without it? Happy to be challenged here!

    Down to start without it!

  9. JmillsExpensify commented on Sep 16, 2026

    @JmillsExpensify
    Contributor

    Same! Prototype looks great.

  10. 14 remaining items

  11. added
    ExternalAdded to denote the issue can be worked on by a contributor
    on Sep 24, 2026
  12. melvin-bot commented on Sep 24, 2026

    @melvin-bot
    Author

    Current assignees @Krishna2323 and @marufsharifi are eligible for the External assigner, not assigning anyone new.

  13. melvin-bot commented on Sep 24, 2026

    @melvin-bot
    Author

    Unable to auto-create job on Upwork. The BZ team member should create it manually for this issue.

  14. melvin-bot commented on Oct 1, 2026

    @melvin-bot
    Author

    @marufsharifi Whoops! This issue is 2 days overdue. Let's get this updated quick!

  15. melvin-bot commented on Oct 5, 2026

    @melvin-bot
    Author

    @marufsharifi 6 days overdue. This is scarier than being forced to listen to Vogon poetry!

  16. melvin-bot commented on Oct 7, 2026

    @melvin-bot
    Author

    @marufsharifi Now this issue is 8 days overdue. Are you sure this should be a Daily? Feel free to change it!

  17. melvin-bot commented on Oct 9, 2026

    @melvin-bot
    Author

    @marufsharifi 10 days overdue. I'm getting more depressed than Marvin.

  18. marufsharifi commented on Oct 13, 2026

    @marufsharifi
    Contributor

    Still Work in progress

  19. melvin-bot commented on Oct 20, 2026

    @melvin-bot
    Author

    @marufsharifi Whoops! This issue is 2 days overdue. Let's get this updated quick!

  20. marufsharifi commented on Oct 21, 2026

    @marufsharifi
    Contributor

    PR is still under review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

DailyKSv2DesignExternalAdded to denote the issue can be worked on by a contributorReviewingHas a PR in review

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions