-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Description
Part of the project
Main issue: https://github.com/Expensify/Expensify/issues/307591
Doc section: Surfacing Potential Duplicates
Project: [Wave: Collect Approvers] Dupe Detection
Part of a series of issues:
- [HOLD for payment 2024-07-10] [HOLD for payment 2024-07-02] [Dupe Detection] Merge Duplicates - Review Page #39756
- [HOLD for payment 2024-07-22] [HOLD for payment 2024-07-17] [Dupe Detection] Merge Duplicates - Review Fields Page #39808
- [Hold for payment 2024-07-31] [Dupe Detection] Merge Duplicates - Confirm Page #39810
Feature Description
Context for ReviewDuplicates
- Review page - /r/:threadReportID/duplicates/review
- Merchant - /r/:threadReportID/duplicates/review/merchant
- Category - /r/:threadReportID/duplicates/review/category
- Tag - /r/:threadReportID/duplicates/review/tag
- Description - /r/:threadReportID/duplicates/review/description
- Confirm page - /r/:threadReportID/duplicates/confirm
All of these screens will exist in their own navigator so they can be pushed (and later popped off once complete) as a group.
All of this will use an Onyx form key of ONYXKEYS.FORMS.REVIEW_DUPLICATES_FORM so we can store the data selected by the user so far when resolving the duplicates. It also lets us keep track of which transaction to keep and which ones are duplicates when the user clicks on Keep this one.
This key will follow a structure like this:
{
"review_duplicates_form_<transactionID>": [
{
"duplicates": {
<transactionID>: <transactionID>,
...
},
"merchant": "...",
"tag": ...",
"description": ...",
…
}
]
}
Review Fields Page
It will make use of the new InteractiveStepSubHeader to show the progress in which step we are currently in. As a reminder this component:
- Receive an array of navigation names, the position will match where it should go when the current step is completed
- Completed steps will be counted based on the length of the navigation names array
For each of the pages to resolve category, merchant, etc, will have a Title element and a SelectionList element to display the different options.
- To display the options, we stored the duplicates in
ONYXKEYS.FORMS.REVIEW_DUPLICATES_FORMat the beginning of the flow so we can search for the transaction data to display the corresponding fields. onSelectRowwe store the selected field in the Onyx key and move to the next field until we have gone through all of them.
Manual Test Steps
TODO
Automated Tests
TODO
