Skip to content
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

[HOLD] [$500] Currency list for request money/send money not up to date #29822

Closed
6 tasks done
m-natarajan opened this issue Oct 17, 2023 · 79 comments
Closed
6 tasks done
Assignees
Labels
Bug Something is broken. Auto assigns a BugZero manager. Engineering External Added to denote the issue can be worked on by a contributor Monthly KSv2

Comments

@m-natarajan
Copy link

m-natarajan commented Oct 17, 2023

If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!


Version Number: 1.3.85-1
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1697535573916749

Action Performed:

  1. Open the app
  2. Click on green plus and click on request money/send money
  3. Click on select currency
  4. Search 'AED' or 'AWG' and observe that we don't have symbols for them
  5. Go to settings->workspaces->any workspace->settings->default currency
  6. Search for 'AED' or 'AWG' and observe that we have symbols for them in that currency list

Expected Result:

Currency list should be upto date throughout the app

Actual Result:

Currency list of request money/ send money has many missing symbols and is not upto date as workspace default currency list

Workaround:

unknown

Platforms:

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

  • Android: Native
  • Android: mWeb Chrome
  • iOS: Native
  • iOS: mWeb Safari
  • MacOS: Chrome / Safari
  • MacOS: Desktop

Screenshots/Videos

Android: Native
Android.native.currency.list.not.upto.date.mp4
Android: mWeb Chrome
Android.chrome.currency.list.is.not.upto.date.mp4
iOS: Native
ios.native.currency.list.not.upto.date.mov
iOS: mWeb Safari
ios.safari.currency.list.not.upto.date.mov
MacOS: Chrome / Safari
mac.chrome.currency.list.not.upto.date.mov
Recording.115.mp4
MacOS: Desktop
mac.desktop.currency.list.not.upto.date.mov

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~01726365c65211c39c
  • Upwork Job ID: 1714364607492071424
  • Last Price Increase: 2023-11-07
  • Automatic offers:
    • s77rt | Contributor | 0
Issue OwnerCurrent Issue Owner: @miljakljajic
@m-natarajan m-natarajan added External Added to denote the issue can be worked on by a contributor Daily KSv2 Bug Something is broken. Auto assigns a BugZero manager. labels Oct 17, 2023
@melvin-bot melvin-bot bot changed the title Currency list for request money/send money not upto date [$500] Currency list for request money/send money not upto date Oct 17, 2023
@melvin-bot
Copy link

melvin-bot bot commented Oct 17, 2023

Triggered auto assignment to @miljakljajic (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

@melvin-bot
Copy link

melvin-bot bot commented Oct 17, 2023

Job added to Upwork: https://www.upwork.com/jobs/~01726365c65211c39c

@melvin-bot melvin-bot bot added the Help Wanted Apply this label when an issue is open to proposals by contributors label Oct 17, 2023
@melvin-bot
Copy link

melvin-bot bot commented Oct 17, 2023

Bug0 Triage Checklist (Main S/O)

  • This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
  • This bug is not a duplicate report (check E/App issues and #expensify-bugs)
    • If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead
  • This bug is reproducible using the reproduction steps in the OP. S/O
    • If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
    • If the reproduction steps aren't clear and you determine the correct steps, please update the OP.
  • This issue is filled out as thoroughly and clearly as possible
    • Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.
  • I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

@rakshitjain13
Copy link
Contributor

rakshitjain13 commented Oct 17, 2023

Proposal

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

Currency list for request money/send money not up to date

What is the root cause of that problem?

There is inconsistency about how to show text in the list

  1. In Request money
    text: `${currencyCode} - ${CurrencyUtils.getLocalizedCurrencySymbol(currencyCode)}`,
  2. In selecting the default currency for the workspace
    text: getDisplayText(currencyCode, currency.symbol),

    Above use the concept of
    const getDisplayText = (currencyCode, currencySymbol) => `${currencyCode} - ${currencySymbol}`;

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

We should implement the same logic as we implemented in selecting the default currency for the workspace, i.e., 2 points above

if we go with the second option
We have to also update the following things in
BaseTextInputWithCurrencySymbol.js

const currencySymbol = CurrencyUtils.getLocalizedCurrencySymbol(props.selectedCurrencyCode);

with

const currencySymbol = props.currencyList[props.selectedCurrencyCode].symbol;

and currencyList will be passed as

export default compose(
    withOnyx({
        currencyList: {key: ONYXKEYS.CURRENCY_LIST},
    }),
)(BaseTextInputWithCurrencySymbolWithRef);

What alternative solutions did you explore? (Optional)

NA

@melvin-bot
Copy link

melvin-bot bot commented Oct 17, 2023

Triggered auto assignment to Contributor-plus team member for initial proposal review - @robertKozik (External)

@Charan-hs
Copy link
Contributor

Charan-hs commented Oct 17, 2023

Proposal

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

Currency list for request money/send money not upto date

What is the root cause of that problem?

here we are using getLocalizedCurrencySymbol to get Currency symbol, which uses Locale, defines which Symbol to use based on locality. for example for the US Dollar, the symbol is "$" if the default locale is the US, while for other locales it may be "US$". If no symbol can be determined, the ISO 4217 currency code is returned.

In workspaces we are using the ISO 4217 list to determine the Currency symbol so it contains all Standard currency symbols.

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

here we replace getLocalizedCurrencySymbol with this

CurrencyUtils.getCurrencySymbol(currencyCode)

Note: if we implement this then we lose Locale currency symbol

What alternative solutions did you explore? (Optional)

In workspace we can update to use getLocalizedCurrencySymbol to get the currency symbol.
or
If we won't get the Currency symbol from getLocalizedCurrencySymbol and rather than returning CurrencyCode, we can add a fallback to CurrencySymbol from CurrencyList.

@AliYar-Khan
Copy link

Proposal

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

Currency list for request money/send money not upto date. Missing currency symbols

What is the root cause of that problem?

We have inconsistency in the code at both locations where currency with symbols are being placed:

  1. text: getDisplayText(currencyCode, currency.symbol),

  2. text: `${currencyCode} - ${CurrencyUtils.getLocalizedCurrencySymbol(currencyCode)}`,

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

use the workspace settings method we will get the same results i.e currency code with symbols

What alternative solutions did you explore? (Optional)

N/A

@DylanDylann
Copy link
Contributor

DylanDylann commented Oct 19, 2023

Proposal

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

Currency list for request money/send money not upto date

What is the root cause of that problem?

  1. In Request Money Flow, we use localized symbol for currency
  2. In the workspace, we use normal symbol for currency

It causes the consistency

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

we had both functions to get normal symbol and localized symbol

function getLocalizedCurrencySymbol(currencyCode: string): string | undefined {

and
function getCurrencySymbol(currencyCode: string): string | undefined {

First, we need to confirm that we should use normal or localized symbols. And then use that function in the both places to avoid consistency

Updated:

  1. If we decide to use normal symbol in both places.
    In here
    text: getDisplayText(currencyCode, currency.symbol),

    and
    text: `${currencyCode} - ${CurrencyUtils.getLocalizedCurrencySymbol(currencyCode)}`,

We should use getCurrencySymbol instead of in both places

@DylanDylann
Copy link
Contributor

DylanDylann commented Oct 19, 2023

@shawnborton

  1. In Request Money Flow, we use localized symbol for currency
  2. In the workspace, we use normal symbol for currency

It causes the consistency. So we need to confirm that we should use a normal or localized symbol for both places? Could you help to give a suggestion from UX perspective?
cc @miljakljajic

@shawnborton
Copy link
Contributor

Can you show me an image with a difference between the two?

I think I lean towards having a local symbol, or however is most common to show that symbol before a numerical amount.

@DylanDylann
Copy link
Contributor

DylanDylann commented Oct 20, 2023

@shawnborton This is the difference

  1. This is localized symbol
Screenshot 2023-10-20 at 11 13 35
  1. This is a normal symbol
Screenshot 2023-10-20 at 11 12 46

@melvin-bot melvin-bot bot added the Overdue label Oct 20, 2023
@robertKozik
Copy link
Contributor

@shawnborton waiting for your input. about what kind of symbol is preferable for currency

@melvin-bot melvin-bot bot removed the Overdue label Oct 20, 2023
@shawnborton
Copy link
Contributor

Hmm @JmillsExpensify @trjExpensify @Expensify/design do you have a strong opinion? The "normal symbol" from above feels nicer to me.

@Charan-hs
Copy link
Contributor

I have a suggestion as I mentioned #29822 (comment)
We will use localized symbol in general but if it returns currency code (i.e. no currency symbol returned) then we can use standard symbol as a fallback, so this will make local symbol served based on the location and rare/(not in localized currency list ) too get standard symbol from curreny list

@dubielzyk-expensify
Copy link
Contributor

+1 to the "Normal"

@melvin-bot melvin-bot bot added the Overdue label Oct 22, 2023
@DylanDylann
Copy link
Contributor

@melvin-bot
Copy link

melvin-bot bot commented Oct 23, 2023

@miljakljajic, @robertKozik Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

@trjExpensify
Copy link
Contributor

I don't have a strong preference in the picker, but if we use the "normal" symbol, does that mean that someone not in the US can't distinguish between USD and CAD on a request sent to them for example?

I'm trying to reconcile why we have two different currency lists being used in the first place, and this "local" solution to me sounds like it was something to do with this:

here we are using getLocalizedCurrencySymbol to get Currency symbol, which uses Locale, defines which Symbol to use based on locality. for example for the US Dollar, the symbol is "$" if the default locale is the US, while for other locales it may be "US$". If no symbol can be determined, the ISO 4217 currency code is returned.

So my question is whether this has a wider impact on where we show a currency symbol in the app, not just the pickers shown here.

@melvin-bot
Copy link

melvin-bot bot commented Oct 24, 2023

📣 It's been a week! Do we have any satisfactory proposals yet? Do we need to adjust the bounty for this issue? 💸

@melvin-bot
Copy link

melvin-bot bot commented Oct 25, 2023

@miljakljajic, @robertKozik Huh... This is 4 days overdue. Who can take care of this?

@miljakljajic
Copy link
Contributor

waiting on input from Tim on the PR.

@melvin-bot melvin-bot bot added the Overdue label Feb 6, 2024
@miljakljajic
Copy link
Contributor

Moving along on #30889 - shouldnt be long now

@melvin-bot melvin-bot bot removed the Overdue label Feb 7, 2024
@melvin-bot melvin-bot bot added the Overdue label Feb 15, 2024
@miljakljajic
Copy link
Contributor

still waiting

@melvin-bot melvin-bot bot removed the Overdue label Feb 19, 2024
@melvin-bot melvin-bot bot added the Overdue label Feb 27, 2024
@cead22
Copy link
Contributor

cead22 commented Feb 27, 2024

On hold, not overdue

@melvin-bot melvin-bot bot removed the Overdue label Feb 27, 2024
@melvin-bot melvin-bot bot added the Overdue label Mar 7, 2024
@cead22
Copy link
Contributor

cead22 commented Mar 13, 2024

It looks like this is on hold for an issue that's on hold for another issue... and so on a so forth. I'm gonna make this monthly. I thought about closing but that probably means a new issue will get opened for the same thing

@cead22 cead22 added Monthly KSv2 and removed Weekly KSv2 labels Mar 13, 2024
@melvin-bot melvin-bot bot removed the Overdue label Mar 13, 2024
@s77rt
Copy link
Contributor

s77rt commented Mar 28, 2024

@cead22 or @miljakljajic Can you please assign me? I'm taking this as C+ replacing @robertKozik

@cead22 cead22 assigned s77rt and unassigned robertKozik Apr 1, 2024
@melvin-bot melvin-bot bot removed the Help Wanted Apply this label when an issue is open to proposals by contributors label Apr 1, 2024
Copy link

melvin-bot bot commented Apr 1, 2024

📣 @s77rt 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app!

Offer link
Upwork job
Please accept the offer and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑‍💻
Keep in mind: Code of Conduct | Contributing 📖

@DylanDylann
Copy link
Contributor

#30889 is merged, this issue can't be reproduced anymore

@s77rt
Copy link
Contributor

s77rt commented May 6, 2024

We can close this

@cead22 cead22 closed this as completed May 6, 2024
@github-project-automation github-project-automation bot moved this from Polish to Done in [#whatsnext] #wave-collect May 6, 2024
@melvin-bot melvin-bot bot removed the Overdue label May 6, 2024
@dhanashree-sawant
Copy link

Hi @s77rt , @cead22 is this job eligible for reporting bonus?

@mallenexpensify
Copy link
Contributor

Unfortunately not @dhanashree-sawant . The PR that fixed this was from a bug issue that was reported 3 days before your report. #29618

There wasn't a PR raised for this one, it was just on hold (for forever).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something is broken. Auto assigns a BugZero manager. Engineering External Added to denote the issue can be worked on by a contributor Monthly KSv2
Projects
No open projects
Archived in project
Development

No branches or pull requests