From 1f157e0d9fa71a35c58b180119ede99975a3c39c Mon Sep 17 00:00:00 2001 From: Bernhard Owen Josephus Date: Tue, 21 May 2024 22:42:30 +0800 Subject: [PATCH 1/2] always convert amount to cents --- src/libs/MoneyRequestUtils.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libs/MoneyRequestUtils.ts b/src/libs/MoneyRequestUtils.ts index 1d55c0f49356..6e0d17a36ffe 100644 --- a/src/libs/MoneyRequestUtils.ts +++ b/src/libs/MoneyRequestUtils.ts @@ -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; From 732c2e2b3136160e7e8806a9f6c6e41833da76e5 Mon Sep 17 00:00:00 2001 From: Bernhard Owen Josephus Date: Wed, 22 May 2024 10:03:34 +0800 Subject: [PATCH 2/2] remove extra args --- src/libs/MoneyRequestUtils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/MoneyRequestUtils.ts b/src/libs/MoneyRequestUtils.ts index 6e0d17a36ffe..44c9bf7a2161 100644 --- a/src/libs/MoneyRequestUtils.ts +++ b/src/libs/MoneyRequestUtils.ts @@ -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); } /**