Skip to content

[HOLD for payment 2024-07-22] [HOLD for payment 2024-07-17] [Dupe Detection] Merge Duplicates - Review Fields Page #39808

@pecanoro

Description

@pecanoro

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:

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

image

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_FORM at the beginning of the flow so we can search for the transaction data to display the corresponding fields.
  • onSelectRow we 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

Issue OwnerCurrent Issue Owner: @bfitzexpensify

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionDailyKSv2EngineeringNewFeatureSomething to build that is a new item.

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions