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.56k stars 2.9k forks source link

Split - Inconsistency in currency symbol in confirmation page and split details page #41824

Closed izarutskaya closed 6 months ago

izarutskaya commented 6 months ago

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


Version Number: 1.4.71-0 Reproducible in staging?: Y Reproducible in production?: N Logs: https://stackoverflow.com/c/expensify/questions/4856 Issue reported by: Applause-Internal team

Action Performed:

  1. Go to staging.new.expensify.com
  2. Go to FAB > Split expense.
  3. Select MYR - RM as currency (required for next step)>
  4. Enter amount and select a few users.
  5. On confirmation page, note that the currency is RM.
  6. Split the expense.
  7. In group chat, click on the split preview.

Expected Result:

The currency in confirmation page and split details page should be consistent.

Actual Result:

The currency in confirmation page (Step 5) is RM, while it shows MYR in split details page (Step 7). RM is the correct currency symbol, but it is not used anywhere else across the app. This issue also happens with a few currency like SGD - S$ and THB.

Workaround:

Unknown

Platforms:

Which of our officially supported platforms is this issue occurring on?

Screenshots/Videos

https://github.com/Expensify/App/assets/115492554/045a6fd4-28c4-4534-a628-c4db6b6ad0b9

View all open jobs on GitHub

melvin-bot[bot] commented 6 months ago

Triggered auto assignment to @mallenexpensify (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.

melvin-bot[bot] commented 6 months ago

👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open Staging deploy checklist to see the list of PRs included in this release, then work quickly on the following:

  1. If you find which PR caused the issue/bug, you can reassign it to the person responsible for it.
    • If the author is OOO or won’t get online before the daily deploy is due, you are responsible for finding the best fix/path forward. Don’t hesitate to ask for help!
  2. Try to reproduce the issue, if the bug is on production, remove the DeployBlocker label but stay assigned to fix it (or find out which PR broke it to get help from the author).
    • You can adjust the urgency of the issue to better represent the gravity of the bug.
    • If the issue is super low priority, feel free to un-assign yourself.
    • Be careful with PHP warnings, sometimes it is more complex than just adding a null coalescing operator as they might be uncovering some bigger bug.
    • If it was a one-off issue that requires no action (for example, Bedrock was down or it is a duplicated issue), you can close it.

Remember rule #2: Never un-assign yourself from a real DeployBlocker unless you are 100% sure someone else is assigned and will take care of it.

github-actions[bot] commented 6 months ago

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

  1. Identify the pull request that introduced this issue and revert it.
  2. Find someone who can quickly fix the issue.
  3. Fix the issue yourself.
izarutskaya commented 6 months ago

@mallenexpensify I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors.

izarutskaya commented 6 months ago

We think this issue might be related to the #vip-split.

melvin-bot[bot] commented 6 months ago

Triggered auto assignment to @grgia (DeployBlockerCash), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.

izarutskaya commented 6 months ago

Production

https://github.com/Expensify/App/assets/115492554/f320ae24-9646-4c49-9f6d-9548eb209ac5

melvin-bot[bot] commented 6 months ago

Triggered auto assignment to @Beamanator (DeployBlockerCash), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.

nkdengineer commented 6 months ago

Proposal

Please re-state the problem that we are trying to solve in this issue.

The currency in confirmation page (Step 5) is RM, while it shows MYR in split details page (Step 7). RM is the correct currency symbol, but it is not used anywhere else across the app. This issue also happens with a few currency like SGD - S$ and THB.

What is the root cause of that problem?

In the create flow, we use currencySymbol which is the correct currency symbol of currency code to display

https://github.com/Expensify/App/blob/e0b6a06d2f34f35cda96ccc4d05252ede111c732/src/components/MoneyRequestConfirmationList.tsx#L486

But in split bill detail page, we use iouCurrencyCode. That is an inconsistent

https://github.com/Expensify/App/blob/e0b6a06d2f34f35cda96ccc4d05252ede111c732/src/components/MoneyRequestConfirmationList.tsx#L481

What changes do you think we should make in order to solve the problem?

We should use iouCurrencyCode as prefixCharacter here instead of currencySymbol

https://github.com/Expensify/App/blob/e0b6a06d2f34f35cda96ccc4d05252ede111c732/src/components/MoneyRequestConfirmationList.tsx#L497

Or we can use currencySymbol to display the amount text here

https://github.com/Expensify/App/blob/e0b6a06d2f34f35cda96ccc4d05252ede111c732/src/components/MoneyRequestConfirmationList.tsx#L481

What alternative solutions did you explore? (Optional)

NA

cristipaval commented 6 months ago

This seems to be a super minor issue. Demoting and assigning @youssef-lr as the original author.

youssef-lr commented 6 months ago

This is intentional so we can use a smaller symbol in the amount inputs. We'd like to display $ and for example in the inputs vs USD & EUR. I think we can close.