diff options
Diffstat (limited to 'packages/taler-wallet-webextension/src/wallet/Transaction.tsx')
-rw-r--r-- | packages/taler-wallet-webextension/src/wallet/Transaction.tsx | 52 |
1 files changed, 39 insertions, 13 deletions
diff --git a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx index 5ed05f87f..cc3a65f2d 100644 --- a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx +++ b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx @@ -38,7 +38,7 @@ import { } from "@gnu-taler/taler-util"; import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; import { styled } from "@linaria/react"; -import { differenceInSeconds } from "date-fns"; +import { differenceInSeconds, isAfter, isFuture, isPast } from "date-fns"; import { ComponentChildren, Fragment, h, VNode } from "preact"; import { useEffect, useState } from "preact/hooks"; import emptyImg from "../../static/img/empty.png"; @@ -641,6 +641,11 @@ export function TransactionView({ if (transaction.type === TransactionType.Deposit) { const total = Amounts.parseOrThrow(transaction.amountRaw); const payto = parsePaytoUri(transaction.targetPaytoUri); + + const wireTime = AbsoluteTime.fromTimestamp( + transaction.wireTransferDeadline, + ); + const shouldBeWired = wireTime.t_ms !== "never" && isPast(wireTime.t_ms); return ( <TransactionTemplate transaction={transaction} @@ -663,18 +668,39 @@ export function TransactionView({ text={<DepositDetails transaction={transaction} />} kind="neutral" /> - <Part - title={i18n.str`Wire transfer deadline`} - text={ - <Time - timestamp={AbsoluteTime.fromTimestamp( - transaction.wireTransferDeadline, - )} - format="dd MMMM yyyy 'at' HH:mm" - /> - } - kind="neutral" - /> + {!shouldBeWired ? ( + <Part + title={i18n.str`Wire transfer deadline`} + text={ + <Time timestamp={wireTime} format="dd MMMM yyyy 'at' HH:mm" /> + } + kind="neutral" + /> + ) : transaction.wireTransferProgress === 0 ? ( + <AlertView + alert={{ + type: "warning", + message: i18n.str`Wire transfer is not initiated`, + description: i18n.str` `, + }} + /> + ) : transaction.wireTransferProgress === 100 ? ( + <AlertView + alert={{ + type: "success", + message: i18n.str`Wire transfer completed`, + description: i18n.str` `, + }} + /> + ) : ( + <AlertView + alert={{ + type: "info", + message: i18n.str`Wire transfer in progress`, + description: i18n.str` `, + }} + /> + )} </TransactionTemplate> ); } |