Expensify / App

Welcome to New Expensify: a complete re-imagination of financial collaboration, centered around chat. Help us build the next generation of Expensify by sharing feedback and contributing to the code.
https://new.expensify.com
MIT License
3.29k stars 2.73k forks source link

[HOLD for payment 2024-07-10] [HOLD for payment 2024-07-02] [Dupe Detection] Merge Duplicates - Review Page #39756

Closed pecanoro closed 1 month ago

pecanoro commented 5 months ago

Part of the Merge Duplicates 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

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 Page

On top of the page, we will add a button to “Keep All” duplicates. When calling onPress, we will call a new API endpoint called DismissViolation and navigate back. On oldDot, we use UpdateTransaction (which does a lot of stuff) but since we only have EditMoneyRequest here, it seems more appropriate to create a new endpoint to avoid breaking 1:1:1.

image-2024-04-08 10_51_27 803

- On failure, we will just remove the same data we added to the optimistic data.

In order to be able to get the duplicates and display them, we will:

To display the different duplicates on the page, we can make use of ReportActionItem which needs each one of the reportActionIDs so we can iterate and display them using the component.

Each one of ReportActionItem will generate a MoneyRequestAction and each one of this will make use MoneyRequestPreview to render the request. To show the button “Keep this one”:

Manual Test Steps

TODO

Automated Tests

TODO

Issue OwnerCurrent Issue Owner: @JmillsExpensify
melvin-bot[bot] commented 5 months ago

Triggered auto assignment to @abekkala (NewFeature), see https://stackoverflowteams.com/c/expensify/questions/14418#:~:text=BugZero%20process%20steps%20for%20feature%20requests for more details.

melvin-bot[bot] commented 5 months ago

:warning: It looks like this issue is labelled as a New Feature but not tied to any GitHub Project. Keep in mind that all new features should be tied to GitHub Projects in order to properly track external CAP software time :warning:

pecanoro commented 4 months ago

Callstack will be taking this series of tasks

kubabutkiewicz commented 4 months ago

Hi, I'm Jakub from Callstack - expert contributor group - and I would like to take a look at this issue.

kubabutkiewicz commented 4 months ago

Hi, just wanted to inform that I will be OOO from 29.04 to 05.05.

pecanoro commented 4 months ago

In progress!

pecanoro commented 3 months ago

In progress!

pecanoro commented 3 months ago

WIP!

pecanoro commented 3 months ago

WIP!

parasharrajat commented 2 months ago

@pecanoro Could you please update the picture to higher resolution?

pecanoro commented 2 months ago

Yeah, it's because I did a screenshot from the design doc. Any specific reason why you need a bigger resolution?

parasharrajat commented 2 months ago

No, just for clarity so I don't miss anything. This one works too.

parasharrajat commented 2 months ago

@pecanoro Is it possible to share the doc with me?

pecanoro commented 2 months ago

@parasharrajat I think so yes, since all C+ signed NDAs but let me double check

pecanoro commented 2 months ago

@parasharrajat Shared!

melvin-bot[bot] commented 2 months ago

Reviewing label has been removed, please complete the "BugZero Checklist".

melvin-bot[bot] commented 2 months ago

The solution for this issue has been :rocket: deployed to production :rocket: in version 9.0.1-19 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2024-07-02. :confetti_ball:

For reference, here are some details about the assignees on this issue:

melvin-bot[bot] commented 2 months ago

BugZero Checklist: The PR adding this new feature has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

melvin-bot[bot] commented 2 months ago

Skipping the payment summary for this issue since all the assignees are employees or vendors. If this is incorrect, please manually add the payment summary SO.

melvin-bot[bot] commented 2 months ago

The solution for this issue has been :rocket: deployed to production :rocket: in version 9.0.3-7 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2024-07-10. :confetti_ball:

For reference, here are some details about the assignees on this issue:

melvin-bot[bot] commented 2 months ago

BugZero Checklist: The PR adding this new feature has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

melvin-bot[bot] commented 1 month ago

Skipping the payment summary for this issue since all the assignees are employees or vendors. If this is incorrect, please manually add the payment summary SO.

parasharrajat commented 1 month ago

@pecanoro could you please assign someone to add payment summary?

pecanoro commented 1 month ago

@JmillsExpensify Can you handle payment for this issue for @parasharrajat since he reviewed the PR?

pecanoro commented 1 month ago

@JmillsExpensify Friendly bump on the above 🤗

JmillsExpensify commented 1 month ago

Payment summary: $250 to @parasharrajat for PR review. We have a testing script being handed off to Applause now, so no need as part of this issue. @parasharrajat please submit a request via NewDot. Thanks!

parasharrajat commented 1 month ago

Payment requested as per https://github.com/Expensify/App/issues/39756#issuecomment-2253051624

JmillsExpensify commented 1 month ago

@mallenexpensify do you mind confirming my payment summary so that I can approve payment?

mallenexpensify commented 1 month ago

Contributor+: @parasharrajat due $250 via NewDot

JmillsExpensify commented 1 month ago

$250 approved for @parasharrajat