diff options
author | Sebastian <sebasjm@gmail.com> | 2023-06-01 14:26:28 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2023-06-01 14:26:28 -0300 |
commit | 4f726b73e66535a69a961da30cf3dcddbbbd9efc (patch) | |
tree | 97ae4e120a2724a851a780da9714c448080a373b /packages/taler-wallet-webextension/src/wallet | |
parent | 699a7b453b90a117776dbb64a09f4c8b312acd04 (diff) | |
download | wallet-core-4f726b73e66535a69a961da30cf3dcddbbbd9efc.tar.xz |
tx state ui
Diffstat (limited to 'packages/taler-wallet-webextension/src/wallet')
3 files changed, 110 insertions, 4 deletions
diff --git a/packages/taler-wallet-webextension/src/wallet/History.stories.tsx b/packages/taler-wallet-webextension/src/wallet/History.stories.tsx index b9c408fe1..149c8c1f4 100644 --- a/packages/taler-wallet-webextension/src/wallet/History.stories.tsx +++ b/packages/taler-wallet-webextension/src/wallet/History.stories.tsx @@ -43,7 +43,7 @@ import { HistoryView as TestedComponent } from "./History.js"; import * as tests from "@gnu-taler/web-util/testing"; export default { - title: "balance", + title: "history", component: TestedComponent, }; @@ -291,6 +291,100 @@ export const SomeTransactions = tests.createExample(TestedComponent, { ], }); +export const SomeTransactionsInDifferentStates = tests.createExample( + TestedComponent, + { + transactions: [ + exampleData.withdraw, + { + ...exampleData.withdraw, + exchangeBaseUrl: "https://aborted/withdrawal", + txState: { + major: TransactionMajorState.Aborted, + }, + }, + { + ...exampleData.withdraw, + exchangeBaseUrl: "https://pending/withdrawal", + txState: { + major: TransactionMajorState.Pending, + }, + }, + { + ...exampleData.withdraw, + exchangeBaseUrl: "https://failed/withdrawal", + txState: { + major: TransactionMajorState.Failed, + }, + }, + { + ...exampleData.payment, + info: { + ...exampleData.payment.info, + summary: "normal payment", + }, + }, + { + ...exampleData.payment, + info: { + ...exampleData.payment.info, + summary: "aborting in progress", + }, + txState: { + major: TransactionMajorState.Aborting, + }, + }, + { + ...exampleData.payment, + info: { + ...exampleData.payment.info, + summary: "aborted payment", + }, + txState: { + major: TransactionMajorState.Aborted, + }, + }, + { + ...exampleData.payment, + info: { + ...exampleData.payment.info, + summary: "pending payment", + }, + txState: { + major: TransactionMajorState.Pending, + }, + }, + { + ...exampleData.payment, + info: { + ...exampleData.payment.info, + summary: "failed payment", + }, + txState: { + major: TransactionMajorState.Failed, + }, + }, + exampleData.refund, + exampleData.tip, + exampleData.deposit, + ], + balances: [ + { + available: "USD:10", + pendingIncoming: "USD:0", + pendingOutgoing: "USD:0", + hasPendingTransactions: false, + requiresUserInput: false, + scopeInfo: { + currency: "Ásd", + type: ScopeType.Auditor, + url: "", + }, + }, + ], + }, +); + export const SomeTransactionsWithTwoCurrencies = tests.createExample( TestedComponent, { diff --git a/packages/taler-wallet-webextension/src/wallet/History.tsx b/packages/taler-wallet-webextension/src/wallet/History.tsx index 34eb9be8c..31c092697 100644 --- a/packages/taler-wallet-webextension/src/wallet/History.tsx +++ b/packages/taler-wallet-webextension/src/wallet/History.tsx @@ -33,7 +33,7 @@ import { NiceSelect, } from "../components/styled/index.js"; import { Time } from "../components/Time.js"; -import { TransactionItem } from "../components/TransactionItem.js"; +import { HistoryItem } from "../components/HistoryItem.js"; import { alertFromError, useAlertContext } from "../context/alert.js"; import { useBackendContext } from "../context/backend.js"; import { useTranslationContext } from "@gnu-taler/web-util/browser"; @@ -269,7 +269,7 @@ export function HistoryView({ /> </DateSeparator> {byDate[d].map((tx, i) => ( - <TransactionItem key={i} tx={tx} /> + <HistoryItem key={i} tx={tx} /> ))} </Fragment> ); diff --git a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx index eb2325e7a..7b4cf964f 100644 --- a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx +++ b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx @@ -52,6 +52,7 @@ import { QR } from "../components/QR.js"; import { ShowFullContractTermPopup } from "../components/ShowFullContractTermPopup.js"; import { CenteredDialog, + ErrorBox, InfoBox, ListOfProducts, Overlay, @@ -128,7 +129,7 @@ export function TransactionPage({ tid, goToWalletHistory }: Props): VNode { goToWalletHistory(currency); }} onResume={async () => { - await api.wallet.call(WalletApiOperation.SuspendTransaction, { + await api.wallet.call(WalletApiOperation.ResumeTransaction, { transactionId, }); goToWalletHistory(currency); @@ -239,6 +240,7 @@ function TransactionTemplate({ transaction.txState.major === TransactionMajorState.Aborting; const showRetry = + !isFinalState && transaction.txState.major !== TransactionMajorState.Pending && transaction.txState.major !== TransactionMajorState.Aborting; @@ -289,6 +291,16 @@ function TransactionTemplate({ <i18n.Translate>This transaction is not completed</i18n.Translate> </WarningBox> )} + {transaction.txState.major === TransactionMajorState.Aborted && ( + <InfoBox> + <i18n.Translate>This transaction was aborted</i18n.Translate> + </InfoBox> + )} + {transaction.txState.major === TransactionMajorState.Failed && ( + <ErrorBox> + <i18n.Translate>This transaction failed</i18n.Translate> + </ErrorBox> + )} {confirmBeforeForget ? ( <Overlay> <CenteredDialog> |