diff options
author | Sebastian <sebasjm@gmail.com> | 2024-04-02 00:41:34 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2024-04-02 00:41:34 -0300 |
commit | 026d9cacaec62fe6c853b3f716a98e6e82e1dd19 (patch) | |
tree | abb5b1344f01757c2f8f656c0e8b4349509c4915 /packages/taler-wallet-webextension/src/wallet/Transaction.tsx | |
parent | 38b4e3cc557bf83cc8e07288cc9d405f252a8d61 (diff) | |
download | wallet-core-026d9cacaec62fe6c853b3f716a98e6e82e1dd19.tar.xz |
fix #8693
Diffstat (limited to 'packages/taler-wallet-webextension/src/wallet/Transaction.tsx')
-rw-r--r-- | packages/taler-wallet-webextension/src/wallet/Transaction.tsx | 131 |
1 files changed, 102 insertions, 29 deletions
diff --git a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx index a5fa66cbe..11fb88cf6 100644 --- a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx +++ b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx @@ -19,6 +19,7 @@ import { AmountJson, Amounts, AmountString, + DenomLossEventType, MerchantInfo, NotificationType, OrderShortInfo, @@ -1027,36 +1028,108 @@ export function TransactionView({ } if (transaction.type === TransactionType.DenomLoss) { - return ( - <TransactionTemplate - transaction={transaction} - onDelete={onDelete} - onRetry={onRetry} - onAbort={onAbort} - onResume={onResume} - onSuspend={onSuspend} - onCancel={onCancel} - > - <Header - timestamp={transaction.timestamp} - type={i18n.str`Debit`} - total={effective} - kind="negative" - > - <i18n.Translate>Lost</i18n.Translate> - </Header> + switch (transaction.lossEventType) { + case DenomLossEventType.DenomExpired: { + return ( + <TransactionTemplate + transaction={transaction} + onDelete={onDelete} + onRetry={onRetry} + onAbort={onAbort} + onResume={onResume} + onSuspend={onSuspend} + onCancel={onCancel} + > + <Header + timestamp={transaction.timestamp} + type={i18n.str`Debit`} + total={effective} + kind="negative" + > + <i18n.Translate>Lost</i18n.Translate> + </Header> + + <Part + title={i18n.str`Exchange`} + text={transaction.exchangeBaseUrl as TranslatedString} + kind="neutral" + /> + <Part + title={i18n.str`Reason`} + text={i18n.str`Denomination expired.`} + /> + </TransactionTemplate> + ); + } + case DenomLossEventType.DenomVanished: { + return ( + <TransactionTemplate + transaction={transaction} + onDelete={onDelete} + onRetry={onRetry} + onAbort={onAbort} + onResume={onResume} + onSuspend={onSuspend} + onCancel={onCancel} + > + <Header + timestamp={transaction.timestamp} + type={i18n.str`Debit`} + total={effective} + kind="negative" + > + <i18n.Translate>Lost</i18n.Translate> + </Header> + + <Part + title={i18n.str`Exchange`} + text={transaction.exchangeBaseUrl as TranslatedString} + kind="neutral" + /> + <Part + title={i18n.str`Reason`} + text={i18n.str`Denomination vanished.`} + /> + </TransactionTemplate> + ); + } + case DenomLossEventType.DenomUnoffered: { + return ( + <TransactionTemplate + transaction={transaction} + onDelete={onDelete} + onRetry={onRetry} + onAbort={onAbort} + onResume={onResume} + onSuspend={onSuspend} + onCancel={onCancel} + > + <Header + timestamp={transaction.timestamp} + type={i18n.str`Debit`} + total={effective} + kind="negative" + > + <i18n.Translate>Lost</i18n.Translate> + </Header> + + <Part + title={i18n.str`Exchange`} + text={transaction.exchangeBaseUrl as TranslatedString} + kind="neutral" + /> + <Part + title={i18n.str`Reason`} + text={i18n.str`Denomination is unoffered.`} + /> + </TransactionTemplate> + ); + } + default: { + assertUnreachable(transaction.lossEventType) + } + } - <Part - title={i18n.str`Exchange`} - text={transaction.exchangeBaseUrl as TranslatedString} - kind="neutral" - /> - <Part - title={i18n.str`Reason`} - text={transaction.lossEventType as TranslatedString} - /> - </TransactionTemplate> - ); } if (transaction.type === TransactionType.Recoup) { throw Error("recoup transaction not implemented"); |