From ff49e3477e155b94e752c516cf58fdea1ca19d54 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 9 Jun 2022 13:37:33 -0300 Subject: format amount so it is align to fractional digitls --- .../src/wallet/Transaction.tsx | 96 +++++++++++++--------- 1 file changed, 58 insertions(+), 38 deletions(-) (limited to 'packages/taler-wallet-webextension/src/wallet/Transaction.tsx') diff --git a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx index d1cb72a78..1f195a2bf 100644 --- a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx +++ b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx @@ -16,6 +16,7 @@ import { AbsoluteTime, + amountFractionalLength, AmountJson, Amounts, Location, @@ -749,7 +750,7 @@ function PurchaseDetails({ Refunded - + )} @@ -828,17 +829,20 @@ function RefundDetails({ }): VNode { const { i18n } = useTranslationContext(); - const fee = Amounts.sub( - Amounts.parseOrThrow(transaction.amountRaw), - Amounts.parseOrThrow(transaction.amountEffective), - ).amount; + const r = Amounts.parseOrThrow(transaction.amountRaw); + const e = Amounts.parseOrThrow(transaction.amountEffective); + const fee = Amounts.sub(r, e).amount; + + const maxFrac = [r, e, fee] + .map((a) => Amounts.maxFractionalDigits(a)) + .reduce((c, p) => Math.max(c, p), 0); return ( Amount - + @@ -846,7 +850,7 @@ function RefundDetails({ Transaction fees - + )} @@ -858,7 +862,7 @@ function RefundDetails({ Total - + @@ -871,18 +875,20 @@ function DepositDetails({ transaction: TransactionDeposit; }): VNode { const { i18n } = useTranslationContext(); + const r = Amounts.parseOrThrow(transaction.amountRaw); + const e = Amounts.parseOrThrow(transaction.amountEffective); + const fee = Amounts.sub(r, e).amount; - const fee = Amounts.sub( - Amounts.parseOrThrow(transaction.amountRaw), - Amounts.parseOrThrow(transaction.amountEffective), - ).amount; + const maxFrac = [r, e, fee] + .map((a) => Amounts.maxFractionalDigits(a)) + .reduce((c, p) => Math.max(c, p), 0); return ( Amount - + @@ -890,7 +896,7 @@ function DepositDetails({ Transaction fees - + )} @@ -902,7 +908,7 @@ function DepositDetails({ Total transfer - + @@ -915,17 +921,26 @@ function RefreshDetails({ }): VNode { const { i18n } = useTranslationContext(); - const fee = Amounts.sub( - Amounts.parseOrThrow(transaction.amountRaw), - Amounts.parseOrThrow(transaction.amountEffective), - ).amount; + const r = Amounts.parseOrThrow(transaction.amountRaw); + const e = Amounts.parseOrThrow(transaction.amountEffective); + const fee = Amounts.sub(r, e).amount; + + const maxFrac = [r, e, fee] + .map((a) => Amounts.maxFractionalDigits(a)) + .reduce((c, p) => Math.max(c, p), 0); return ( Amount - + + + + + Transaction fees + + @@ -934,9 +949,9 @@ function RefreshDetails({ - Transaction fees + Total - + @@ -946,17 +961,20 @@ function RefreshDetails({ function TipDetails({ transaction }: { transaction: TransactionTip }): VNode { const { i18n } = useTranslationContext(); - const fee = Amounts.sub( - Amounts.parseOrThrow(transaction.amountRaw), - Amounts.parseOrThrow(transaction.amountEffective), - ).amount; + const r = Amounts.parseOrThrow(transaction.amountRaw); + const e = Amounts.parseOrThrow(transaction.amountEffective); + const fee = Amounts.sub(r, e).amount; + + const maxFrac = [r, e, fee] + .map((a) => Amounts.maxFractionalDigits(a)) + .reduce((c, p) => Math.max(c, p), 0); return ( Amount - + @@ -964,7 +982,7 @@ function TipDetails({ transaction }: { transaction: TransactionTip }): VNode { Transaction fees - + )} @@ -976,7 +994,7 @@ function TipDetails({ transaction }: { transaction: TransactionTip }): VNode { Total - + @@ -990,17 +1008,20 @@ function WithdrawDetails({ }): VNode { const { i18n } = useTranslationContext(); - const fee = Amounts.sub( - Amounts.parseOrThrow(transaction.amountRaw), - Amounts.parseOrThrow(transaction.amountEffective), - ).amount; + const r = Amounts.parseOrThrow(transaction.amountRaw); + const e = Amounts.parseOrThrow(transaction.amountEffective); + const fee = Amounts.sub(r, e).amount; + + const maxFrac = [r, e, fee] + .map((a) => Amounts.maxFractionalDigits(a)) + .reduce((c, p) => Math.max(c, p), 0); return ( Withdraw - + @@ -1008,7 +1029,7 @@ function WithdrawDetails({ Transaction fees - + )} @@ -1020,7 +1041,7 @@ function WithdrawDetails({ Total - + @@ -1059,9 +1080,8 @@ function Header({ } + text={} kind={kind} - showSign /> -- cgit v1.2.3