-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[$1000] [HOLD for payment 2023-07-20] [Manual Requests] Make the Datepicker component more reusable #20630
Comments
Triggered auto assignment to @kevinksullivan ( |
Bug0 Triage Checklist (Main S/O)
|
Asking Bartek if he wants to tackle this one tomorrow as they originally worked on this issue |
Hi I'm Bartek from Callstack - expert contributor group - I would like to work on this issue. |
I would gladly review the part with subscribing to navigation and the information flow in those components 😅 |
Looks like something related to As a reminder, please make sure that all proposals are not workarounds and that any and all attempt to fix the issue holistically have been made before proceeding with a solution. Proposals to change our Feel free to drop a note in #expensify-open-source with any questions. |
Nice, I will assign you too, its important issue to get done right |
@burczu previously, we wanted the Year page to be its own route with the psuh-to-page design which is quite complicated. Could we potentially make this page "internal" to the datepicker route so it looks same as a new page in the stack. This might introduce issues with the navigation tho to keep the browser back and in-app Up actions consistent. Maybe we could also disallow deeplinking to the year page which could help with some edge cases so that when you try to access the year page by using deeplink it would redirect to the date picker first. Not sure whats the best way but lets brainstorm our options |
not overdue |
In my opinion, it's a great decision to eliminate the persistence of the calendar state upon reloading. The current implementation relies on having a separate route for the list of years in the calendar because it uses navigation. |
Thanks for chiming in @ArekChr. I agree this will make the Datepicker better component from the developer perspective and there is questionable benefit from having the state persistance. Its in theory nice for users that the state is not lost but we dont really have any data or proves users would be running to this issue, they will most likely "get it". |
Would you be able to prepare a proposal for the refactor keeping the same open and close animation for the year picker? |
Yes @mountiny, I will work on that. |
ProposalProblem StatementThe New Date Picker component has gone through several iterations, and refactoring is necessary to improve reusability across various flows and pages within the application. Root CauseThe main issue lies in implementing the year list picker as a separate screen using Proposed SolutionTo address the problem effectively, I propose the following changes:
Implementing these proposed changes will enhance the reusability, maintainability, and overall quality of the |
@ArekChr Thanks for the proposal, I think the plan looks good. I think the regression tests might not be that necessary at first they can come in a separate PRs for sure. Lets ensure the UI of the page and animation using reanimated looks same as other page transitions. Additionally I will ping @JmillsExpensify and @shawnborton here as they have been part of the previous discussions about the NewDatePicker component. Do you have any concerns about the Year selector not being its own page anymore? It will simplify the code drastically, make it easy to reuse and understand which we both lack now. We doubt that the UX will be degraded. In case of Expense created date, users rarely even have to change year of the created date. |
Great, so the regression tests from point 5 will be excluded. |
If the year picker is no longer push to page, how will it work exactly? |
From a UX perspective, I am going to implement the same animation of pushing the page, so the user will not notice any UI difference. |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.3.39-11 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2023-07-20. 🎊 After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.
As a reminder, here are the bonuses/penalties that should be applied for any External issue:
|
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
@mountiny Do we need a checklist for this issue ? |
No |
@kevinksullivan this should be $1000 to @fedirjh for review and testing. thank you 🙇 |
@kevinksullivan this is ready to be paid |
Job added to Upwork: https://www.upwork.com/jobs/~018d352aca1b0ce802 |
Current assignee @kevinksullivan is eligible for the External assigner, not assigning anyone new. |
Just labeling to get the upwork job set up. |
Offer sent @fedirjh ^^ . Let me know when you accept! |
@kevinksullivan Thank you! Accepted |
Woo! Awesome work on this one. Excited to have it in the wild. |
@kevinksullivan All done here, can we close this? |
All set / paid |
Problem
The NewDatePicker component has went trhough couple of iterations and its time to refactor it and mainly make it easier to reuse in other flows and pages of the app. Some context in this thread
Why is it important?
We are adding more flows which require a date picker component, however, the current implementation is hard to just take and plug into some other form with different routes so it just works. For example in this PR we need to make it easy to implement a date picker to a request details page
Solution
Explore how we can simplify this component so we keep the current functionality and design ideally while improving the DX.
cc @Beamanator @burczu @WoLewicki @adamgrzybowski @s77rt @luacmartins
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: