Skip to content

Commit

Permalink
Merge pull request #42426 from bernhardoj/fix/42084-limi-amount-to-8-…
Browse files Browse the repository at this point in the history
…digit

Fix user can submit 10-digit amount and gives an unexpected error
  • Loading branch information
marcochavezf authored May 27, 2024
2 parents cabf71d + 732c2e2 commit 3599850
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/libs/MoneyRequestUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ function addLeadingZero(amount: string): string {
/**
* Calculate the length of the amount with leading zeroes
*/
function calculateAmountLength(amount: string, decimals: number): number {
function calculateAmountLength(amount: string): number {
const leadingZeroes = amount.match(/^0+/);
const leadingZeroesLength = leadingZeroes?.[0]?.length ?? 0;
const absAmount = parseFloat((Number(stripCommaFromAmount(amount)) * 10 ** decimals).toFixed(2)).toString();
const absAmount = parseFloat((Number(stripCommaFromAmount(amount)) * 100).toFixed(2)).toString();

if (/\D/.test(absAmount)) {
return CONST.IOU.AMOUNT_MAX_LENGTH + 1;
Expand All @@ -61,7 +61,7 @@ function validateAmount(amount: string, decimals: number, amountMaxLength: numbe
? `^\\d+(,\\d*)*$` // Don't allow decimal point if decimals === 0
: `^\\d+(,\\d*)*(\\.\\d{0,${decimals}})?$`; // Allow the decimal point and the desired number of digits after the point
const decimalNumberRegex = new RegExp(regexString, 'i');
return amount === '' || (decimalNumberRegex.test(amount) && calculateAmountLength(amount, decimals) <= amountMaxLength);
return amount === '' || (decimalNumberRegex.test(amount) && calculateAmountLength(amount) <= amountMaxLength);
}

/**
Expand Down

0 comments on commit 3599850

Please sign in to comment.