From 41850c9f14baa5330919c6dabf161b1aaeda7376 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 23 Feb 2022 15:18:37 -0300 Subject: add i18n where was missing --- .../src/wallet/AddNewActionView.tsx | 24 ++- .../src/wallet/BackupPage.tsx | 33 ++-- .../src/wallet/CreateManualWithdraw.tsx | 54 +++--- .../src/wallet/DepositPage.tsx | 41 +++-- .../src/wallet/ExchangeAddConfirm.tsx | 18 +- .../src/wallet/ExchangeSetUrl.tsx | 61 ++++--- .../src/wallet/History.tsx | 11 +- .../src/wallet/ManualWithdrawPage.tsx | 5 +- .../src/wallet/ProviderAddPage.tsx | 69 +++++--- .../src/wallet/ProviderDetailPage.tsx | 120 ++++++++------ .../src/wallet/ReserveCreated.tsx | 39 +++-- .../src/wallet/Settings.tsx | 63 +++++-- .../src/wallet/Transaction.tsx | 181 ++++++++++++++------- .../src/wallet/Welcome.tsx | 37 +++-- 14 files changed, 511 insertions(+), 245 deletions(-) (limited to 'packages/taler-wallet-webextension/src/wallet') diff --git a/packages/taler-wallet-webextension/src/wallet/AddNewActionView.tsx b/packages/taler-wallet-webextension/src/wallet/AddNewActionView.tsx index d4158973e..d47803212 100644 --- a/packages/taler-wallet-webextension/src/wallet/AddNewActionView.tsx +++ b/packages/taler-wallet-webextension/src/wallet/AddNewActionView.tsx @@ -1,4 +1,8 @@ -import { classifyTalerUri, TalerUriType } from "@gnu-taler/taler-util"; +import { + classifyTalerUri, + TalerUriType, + Translate, +} from "@gnu-taler/taler-util"; import { Fragment, h, VNode } from "preact"; import { useState } from "preact/hooks"; import { Button, ButtonSuccess, InputWithLabel } from "../components/styled"; @@ -8,20 +12,20 @@ export interface Props { onCancel: () => void; } -function buttonLabelByTalerType(type: TalerUriType): string { +function buttonLabelByTalerType(type: TalerUriType): VNode { switch (type) { case TalerUriType.TalerNotifyReserve: - return "Open reserve page"; + return Open reserve page; case TalerUriType.TalerPay: - return "Open pay page"; + return Open pay page; case TalerUriType.TalerRefund: - return "Open refund page"; + return Open refund page; case TalerUriType.TalerTip: - return "Open tip page"; + return Open tip page; case TalerUriType.TalerWithdraw: - return "Open withdraw page"; + return Open withdraw page; } - return ""; + return ; } export function AddNewActionView({ onCancel }: Props): VNode { @@ -47,7 +51,9 @@ export function AddNewActionView({ onCancel }: Props): VNode {
- + {uriType !== TalerUriType.Unknown && ( { diff --git a/packages/taler-wallet-webextension/src/wallet/BackupPage.tsx b/packages/taler-wallet-webextension/src/wallet/BackupPage.tsx index daea9e3bd..73fff6e85 100644 --- a/packages/taler-wallet-webextension/src/wallet/BackupPage.tsx +++ b/packages/taler-wallet-webextension/src/wallet/BackupPage.tsx @@ -14,7 +14,7 @@ TALER; see the file COPYING. If not, see */ -import { i18n, Timestamp } from "@gnu-taler/taler-util"; +import { i18n, Timestamp, Translate } from "@gnu-taler/taler-util"; import { ProviderInfo, ProviderPaymentPaid, @@ -71,7 +71,10 @@ export function BackupPage({ onAddProvider }: Props): VNode { } if (status.hasError) { return ( - + Could not load backup providers} + error={status} + /> ); } @@ -122,9 +125,11 @@ export function BackupView({ ))} {!providers.length && ( - No backup providers configured + + No backup providers configured + - Add provider + Add provider )} @@ -135,12 +140,14 @@ export function BackupView({
{providers.length > 1 ? ( - Sync all backups + Sync all backups ) : ( - Sync now + Sync now )} - Add provider + + Add provider +
)} @@ -176,10 +183,14 @@ function BackupLayout(props: TransactionLayoutProps): VNode { {dateStr && ( - Last synced: {dateStr} + + Last synced: {dateStr} + )} {!dateStr && ( - Not synced + + Not synced + )}
@@ -196,7 +207,9 @@ function BackupLayout(props: TransactionLayoutProps): VNode { function ExpirationText({ until }: { until: Timestamp }): VNode { return ( - Expires in + + Expires in + {" "} {daysUntil(until)}{" "} diff --git a/packages/taler-wallet-webextension/src/wallet/CreateManualWithdraw.tsx b/packages/taler-wallet-webextension/src/wallet/CreateManualWithdraw.tsx index 0ca07816e..b0eddeda5 100644 --- a/packages/taler-wallet-webextension/src/wallet/CreateManualWithdraw.tsx +++ b/packages/taler-wallet-webextension/src/wallet/CreateManualWithdraw.tsx @@ -19,7 +19,7 @@ * @author Sebastian Javier Marchano (sebasjm) */ -import { AmountJson, Amounts, i18n } from "@gnu-taler/taler-util"; +import { AmountJson, Amounts, i18n, Translate } from "@gnu-taler/taler-util"; import { Fragment, h, VNode } from "preact"; import { useState } from "preact/hooks"; import { ErrorMessage } from "../components/ErrorMessage"; @@ -99,16 +99,22 @@ export function CreateManualWithdraw({ if (!initialExchange) { return (
-

Manual Withdrawal

+

+ Manual Withdrawal +

- Choose a exchange from where the coins will be withdrawn. The exchange - will send the coins to this wallet after receiving a wire transfer - with the correct subject. + + Choose a exchange from where the coins will be withdrawn. The + exchange will send the coins to this wallet after receiving a wire + transfer with the correct subject. + - No exchange configured + + No exchange configured + - Add exchange + Add exchange
@@ -118,20 +124,26 @@ export function CreateManualWithdraw({ return (
- -

Manual Withdrawal

+ {error && ( + Can't create the reserve} + description={error} + /> + )} +

+ Manual Withdrawal +

- Choose a exchange from where the coins will be withdrawn. The exchange - will send the coins to this wallet after receiving a wire transfer - with the correct subject. + + Choose a exchange from where the coins will be withdrawn. The + exchange will send the coins to this wallet after receiving a wire + transfer with the correct subject. +

Currency} list={currencyMap} name="currency" value={currency} @@ -140,7 +152,7 @@ export function CreateManualWithdraw({ Exchange} list={exchangeMap} name="currency" value={exchange} @@ -149,12 +161,14 @@ export function CreateManualWithdraw({

- Add exchange + Add Exchange
{currency && ( - +
{currency} onCreate(exchange, parsedAmount!)} > - Start withdrawal + Start withdrawal diff --git a/packages/taler-wallet-webextension/src/wallet/DepositPage.tsx b/packages/taler-wallet-webextension/src/wallet/DepositPage.tsx index abe830e87..7a5e02d3b 100644 --- a/packages/taler-wallet-webextension/src/wallet/DepositPage.tsx +++ b/packages/taler-wallet-webextension/src/wallet/DepositPage.tsx @@ -19,6 +19,7 @@ import { Amounts, AmountString, PaytoUri, + Translate, } from "@gnu-taler/taler-util"; import { DepositFee } from "@gnu-taler/taler-wallet-core/src/operations/deposits"; import { Fragment, h, VNode } from "preact"; @@ -132,13 +133,21 @@ export function View({ }, [amount]); if (!balance) { - return
no balance
; + return ( +
+ no balance +
+ ); } if (!knownBankAccounts || !knownBankAccounts.length) { return ( -

There is no known bank account to send money to

- Withdraw +

+ There is no known bank account to send money to +

+ + Withdraw +
); } @@ -162,11 +171,13 @@ export function View({ return ( -

Send {currency} to your account

+

+ Send {currency} to your account +

Bank account IBAN number} list={accountMap} name="account" value={String(accountIdx)} @@ -174,7 +185,9 @@ export function View({ /> - +
{currency} - +
{currency} - +
{currency}
{unableToDeposit ? ( - Deposit + + Deposit + ) : ( onSend(accountURI, amountStr)}> - Deposit {Amounts.stringifyValue(totalToDeposit)} {currency} + + Deposit {Amounts.stringifyValue(totalToDeposit)} {currency} + )} diff --git a/packages/taler-wallet-webextension/src/wallet/ExchangeAddConfirm.tsx b/packages/taler-wallet-webextension/src/wallet/ExchangeAddConfirm.tsx index 562a2c956..06d8abd2b 100644 --- a/packages/taler-wallet-webextension/src/wallet/ExchangeAddConfirm.tsx +++ b/packages/taler-wallet-webextension/src/wallet/ExchangeAddConfirm.tsx @@ -1,4 +1,4 @@ -import { i18n } from "@gnu-taler/taler-util"; +import { i18n, Translate } from "@gnu-taler/taler-util"; import { Fragment, h, VNode } from "preact"; import { useState } from "preact/hooks"; import { Button, ButtonSuccess, ButtonWarning } from "../components/styled"; @@ -84,9 +84,11 @@ export function View({ return (
-

Review terms of service

+

+ Review terms of service +

- Exchange URL: + Exchange URL: {url} @@ -107,28 +109,28 @@ export function View({
{!terms && ( )} {terms && ( {needsReview && !reviewed && ( - {i18n.str`Add exchange`} + Add exchange )} {(terms.status === "accepted" || (needsReview && reviewed)) && ( - {i18n.str`Add exchange`} + Add exchange )} {terms.status === "notfound" && ( - {i18n.str`Add exchange anyway`} + Add exchange anyway )} diff --git a/packages/taler-wallet-webextension/src/wallet/ExchangeSetUrl.tsx b/packages/taler-wallet-webextension/src/wallet/ExchangeSetUrl.tsx index c4ba4f2a3..909afc4b7 100644 --- a/packages/taler-wallet-webextension/src/wallet/ExchangeSetUrl.tsx +++ b/packages/taler-wallet-webextension/src/wallet/ExchangeSetUrl.tsx @@ -2,6 +2,7 @@ import { canonicalizeBaseUrl, i18n, TalerConfigResponse, + Translate, } from "@gnu-taler/taler-util"; import { Fragment, h } from "preact"; import { useEffect, useState } from "preact/hooks"; @@ -91,32 +92,46 @@ export function ExchangeSetUrlPage({
{!expectedCurrency ? ( -

Add new exchange

+

+ Add new exchange +

) : ( -

Add exchange for {expectedCurrency}

+

+ Add exchange for {expectedCurrency} +

)} {!result && ( - Enter the URL of an exchange you trust. + + Enter the URL of an exchange you trust. + )} {result && ( - An exchange has been found! Review the information and click next + + An exchange has been found! Review the information and click next + )} {result && expectedCurrency && expectedCurrency !== result.currency && ( - This exchange doesn't match the expected currency{" "} - {expectedCurrency} + + This exchange doesn't match the expected currency + {expectedCurrency} + )} - - + {error && ( + Unable to verify this exchange} + description={error} + /> + )} + {confirmationError && ( + Unable to add this exchange} + description={confirmationError} + /> + )}

@@ -127,15 +142,23 @@ export function ExchangeSetUrlPage({ onInput={(e) => updateEndpoint(e.currentTarget.value)} /> - {loading &&

loading...
} + {loading && ( +
+ loading... +
+ )} {result && !loading && ( - + - + @@ -144,7 +167,7 @@ export function ExchangeSetUrlPage({
- Next + Next
diff --git a/packages/taler-wallet-webextension/src/wallet/History.tsx b/packages/taler-wallet-webextension/src/wallet/History.tsx index 2fae07525..a3e8ecc67 100644 --- a/packages/taler-wallet-webextension/src/wallet/History.tsx +++ b/packages/taler-wallet-webextension/src/wallet/History.tsx @@ -19,6 +19,7 @@ import { Balance, NotificationType, Transaction, + Translate, } from "@gnu-taler/taler-util"; import { Fragment, h, VNode } from "preact"; import { useState } from "preact/hooks"; @@ -66,7 +67,7 @@ export function HistoryPage({ if (transactionQuery.hasError) { return ( Could not load the list of transactions} error={transactionQuery} /> ); @@ -193,21 +194,23 @@ export function HistoryView({ style={{ marginLeft: 0, marginTop: 8 }} onClick={() => goToWalletManualWithdraw(selectedCurrency)} > - Withdraw + Withdraw {currencyAmount && Amounts.isNonZero(currencyAmount) && ( goToWalletDeposit(selectedCurrency)} > - Deposit + Deposit )}
{datesWithTransaction.length === 0 ? ( -
There is no history for this currency
+
+ There is no history for this currency +
) : (
{datesWithTransaction.map((d, i) => { diff --git a/packages/taler-wallet-webextension/src/wallet/ManualWithdrawPage.tsx b/packages/taler-wallet-webextension/src/wallet/ManualWithdrawPage.tsx index 1f8603794..8eca733d4 100644 --- a/packages/taler-wallet-webextension/src/wallet/ManualWithdrawPage.tsx +++ b/packages/taler-wallet-webextension/src/wallet/ManualWithdrawPage.tsx @@ -19,6 +19,7 @@ import { AmountJson, Amounts, NotificationType, + Translate, } from "@gnu-taler/taler-util"; import { h, VNode } from "preact"; import { useState } from "preact/hooks"; @@ -95,7 +96,9 @@ export function ManualWithdrawPage({ currency, onCancel }: Props): VNode { if (state.hasError) { return ( Could not load the list of known exchanges + } error={state} /> ); diff --git a/packages/taler-wallet-webextension/src/wallet/ProviderAddPage.tsx b/packages/taler-wallet-webextension/src/wallet/ProviderAddPage.tsx index 44d1049b9..55e2b62fb 100644 --- a/packages/taler-wallet-webextension/src/wallet/ProviderAddPage.tsx +++ b/packages/taler-wallet-webextension/src/wallet/ProviderAddPage.tsx @@ -19,6 +19,7 @@ import { BackupBackupProviderTerms, canonicalizeBaseUrl, i18n, + Translate, } from "@gnu-taler/taler-util"; import { Fragment, h, VNode } from "preact"; import { useEffect, useState } from "preact/hooks"; @@ -113,15 +114,23 @@ export function SetUrlView({ return (
-

Add backup provider

- - Backup providers may charge for their service +

+ Add backup provider +

+ {error && ( + Could not get provider information} + description={error} + /> + )} + + Backup providers may charge for their service +

- + - +

- Next + Next
@@ -177,29 +188,41 @@ export function ConfirmProviderView({ return (
-

Review terms of service

+

+ Review terms of service +

- Provider URL:{" "} + Provider URL:{" "} {url}
- Please review and accept this provider's terms of service + + Please review and accept this provider's terms of service + -

1. Pricing

+

+ 1. Pricing +

- {Amounts.isZero(provider.annual_fee) - ? "free of charge" - : `${provider.annual_fee} per year of service`} + {Amounts.isZero(provider.annual_fee) ? ( + free of charge + ) : ( + {provider.annual_fee} per year of service + )}

-

2. Storage

+

+ 2. Storage +

- {provider.storage_limit_in_megabytes} megabytes of storage per year of - service + + {provider.storage_limit_in_megabytes} megabytes of storage per year + of service +

Accept terms of service} name="terms" onToggle={() => setAccepted((old) => !old)} enabled={accepted} @@ -207,10 +230,10 @@ export function ConfirmProviderView({
- Add provider + Add provider
diff --git a/packages/taler-wallet-webextension/src/wallet/ProviderDetailPage.tsx b/packages/taler-wallet-webextension/src/wallet/ProviderDetailPage.tsx index 239a7b31d..beeedcda7 100644 --- a/packages/taler-wallet-webextension/src/wallet/ProviderDetailPage.tsx +++ b/packages/taler-wallet-webextension/src/wallet/ProviderDetailPage.tsx @@ -14,7 +14,7 @@ TALER; see the file COPYING. If not, see */ -import { i18n } from "@gnu-taler/taler-util"; +import { Translate } from "@gnu-taler/taler-util"; import { ProviderInfo, ProviderPaymentStatus, @@ -22,6 +22,8 @@ import { } from "@gnu-taler/taler-wallet-core"; import { Fragment, h, VNode } from "preact"; import { ErrorMessage } from "../components/ErrorMessage"; +import { Loading } from "../components/Loading"; +import { LoadingError } from "../components/LoadingError"; import { Button, ButtonDestructive, @@ -52,35 +54,24 @@ export function ProviderDetailPage({ pid: providerURL, onBack }: Props): VNode { const state = useAsyncAsHook(getProviderInfo); if (!state) { - return ( -
- Loading... -
- ); + return ; } if (state.hasError) { return ( -
- - There was an error loading the provider detail for "{providerURL}" - -
+ + There was an error loading the provider detail for "{providerURL}" + + } + error={state} + /> ); } - if (state.response === null) { - onBack(); - return ( -
- - There is not known provider with url "{providerURL}". Redirecting - back... - -
- ); - } return ( wxApi.syncOneProvider(providerURL)} onDelete={async () => wxApi.removeProvider(providerURL).then(onBack)} @@ -93,7 +84,8 @@ export function ProviderDetailPage({ pid: providerURL, onBack }: Props): VNode { } export interface ViewProps { - info: ProviderInfo; + url: string; + info: ProviderInfo | null; onDelete: () => void; onSync: () => void; onBack: () => void; @@ -102,12 +94,30 @@ export interface ViewProps { export function ProviderView({ info, + url, onDelete, onSync, onBack, onExtend, }: ViewProps): VNode { - const lb = info?.lastSuccessfulBackupTimestamp; + if (info === null) { + return ( + +
+

+ There is not known provider with url "{url}". +

+
+
+ +
+
+
+ ); + } + const lb = info.lastSuccessfulBackupTimestamp; const isPaid = info.paymentStatus.type === ProviderPaymentType.Paid || info.paymentStatus.type === ProviderPaymentType.TermsChanged; @@ -125,48 +135,55 @@ export function ProviderView({

- Last backup:

- Back up + Back up {info.terms && (

- Provider fee: {info.terms && info.terms.annualFee} per year + + Provider fee: + {" "} + {info.terms && info.terms.annualFee}{" "} + per year

)}

{descriptionByStatus(info.paymentStatus)}

- Extend + Extend {info.paymentStatus.type === ProviderPaymentType.TermsChanged && (

- + terms has changed, extending the service will imply accepting the new terms of service - +

@@ -174,7 +191,7 @@ export function ProviderView({ @@ -187,11 +204,11 @@ export function ProviderView({
- remove provider + Remove provider
@@ -201,7 +218,12 @@ export function ProviderView({ function Error({ info }: { info: ProviderInfo }): VNode { if (info.lastError) { - return ; + return ( + This provider has reported an error} + description={info.lastError.hint} + /> + ); } if (info.backupProblem) { switch (info.backupProblem.type) { @@ -210,24 +232,26 @@ function Error({ info }: { info: ProviderInfo }): VNode { - + There is conflict with another backup from{" "} {info.backupProblem.otherDeviceId} - + } /> ); case "backup-unreadable": - return ; + return ( + Backup is not readable} /> + ); default: return ( - + Unknown backup problem: {JSON.stringify(info.backupProblem)} - + } /> @@ -239,16 +263,20 @@ function Error({ info }: { info: ProviderInfo }): VNode { function descriptionByStatus(status: ProviderPaymentStatus): VNode { switch (status.type) { - // return i18n.str`no enough balance to make the payment` - // return i18n.str`not paid yet` case ProviderPaymentType.Paid: case ProviderPaymentType.TermsChanged: if (status.paidUntil.t_ms === "never") { - return {i18n.str`service paid`}; + return ( + + service paid + + ); } return ( - Backup valid until:{" "} + + Backup valid until: + {" "} ); diff --git a/packages/taler-wallet-webextension/src/wallet/ReserveCreated.tsx b/packages/taler-wallet-webextension/src/wallet/ReserveCreated.tsx index 7ccef2daa..7de719fc6 100644 --- a/packages/taler-wallet-webextension/src/wallet/ReserveCreated.tsx +++ b/packages/taler-wallet-webextension/src/wallet/ReserveCreated.tsx @@ -1,4 +1,9 @@ -import { AmountJson, Amounts, parsePaytoUri } from "@gnu-taler/taler-util"; +import { + AmountJson, + Amounts, + parsePaytoUri, + Translate, +} from "@gnu-taler/taler-util"; import { Fragment, h, VNode } from "preact"; import { BankDetailsByPaytoType } from "../components/BankDetailsByPaytoType"; import { QR } from "../components/QR"; @@ -22,15 +27,23 @@ export function ReserveCreated({ const paytoURI = parsePaytoUri(payto); // const url = new URL(paytoURI?.targetPath); if (!paytoURI) { - return
could not parse payto uri from exchange {payto}
; + return ( +
+ could not parse payto uri from exchange {payto} +
+ ); } return (
-

Exchange is ready for withdrawal!

+

+ Exchange is ready for withdrawal +

- To complete the process you need to wire{" "} - {amountToString(amount)} to the exchange bank account + + To complete the process you need to wire + {amountToString(amount)} to the exchange bank account +

- Make sure to use the correct subject, otherwise the money will not - arrive in this wallet. + + Make sure to use the correct subject, otherwise the money will not + arrive in this wallet. +

- Alternative, you can also scan this QR code or open{" "} - this link if you have a banking app installed that - supports RFC 8905 + + Alternative, you can also scan this QR code or open + this link if you have a banking app installed + that supports RFC 8905 +

- Cancel withdrawal + Cancel withdrawal
diff --git a/packages/taler-wallet-webextension/src/wallet/Settings.tsx b/packages/taler-wallet-webextension/src/wallet/Settings.tsx index ff47620eb..bac884247 100644 --- a/packages/taler-wallet-webextension/src/wallet/Settings.tsx +++ b/packages/taler-wallet-webextension/src/wallet/Settings.tsx @@ -14,7 +14,7 @@ TALER; see the file COPYING. If not, see */ -import { ExchangeListItem, i18n } from "@gnu-taler/taler-util"; +import { ExchangeListItem, i18n, Translate } from "@gnu-taler/taler-util"; import { Fragment, h, VNode } from "preact"; import { Checkbox } from "../components/Checkbox"; import { @@ -81,29 +81,46 @@ export function SettingsView({

- Permissions + Permissions

+ Automatically open wallet based on page content + + } name="perm" - description="(Enabling this option below will make using the wallet faster, but requires more permissions from your browser.)" + description={ + + Enabling this option below will make using the wallet faster, but + requires more permissions from your browser. + + } enabled={permissionsEnabled} onToggle={togglePermissions} />

- Known exchanges + Known exchanges

{!knownExchanges || !knownExchanges.length ? ( -
No exchange yet!
+
+ No exchange yet +
) : (
  - old + old -> - new + new
- fee + fee {info.paymentStatus.oldTerms.annualFee} ->
- storage + storage {info.paymentStatus.oldTerms.storageLimitInMegabytes} ->
- - - + + + @@ -116,12 +133,24 @@ export function SettingsView({ ); switch (status) { case "accepted": - return ok; + return ( + + ok + + ); case "changed": - return changed!; + return ( + + changed + + ); case "new": case "notfound": - return not accepted; + return ( + + not accepted + + ); } } return ( @@ -143,15 +172,19 @@ export function SettingsView({
- Add an exchange + Add an exchange

Config

Developer mode} name="devMode" - description="(More options and information useful for debugging)" + description={ + + (More options and information useful for debugging) + + } enabled={developerMode} onToggle={toggleDeveloperMode} /> diff --git a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx index 423a641a3..a43e9b4a0 100644 --- a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx +++ b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx @@ -22,6 +22,7 @@ import { parsePaytoUri, Transaction, TransactionType, + Translate, WithdrawalType, } from "@gnu-taler/taler-util"; import { differenceInSeconds } from "date-fns"; @@ -47,7 +48,6 @@ import { } from "../components/styled"; import { Time } from "../components/Time"; import { useAsyncAsHook } from "../hooks/useAsyncAsHook"; -import { Pages } from "../NavigationBar"; import * as wxApi from "../wxApi"; interface Props { @@ -76,7 +76,9 @@ export function TransactionPage({ tid, goToWalletHistory }: Props): VNode { if (state.hasError) { return ( Could not load the transaction information + } error={state} /> ); @@ -139,11 +141,17 @@ export function TransactionView({
+ There was an error trying to complete the transaction + + } error={transaction?.error} /> {transaction.pending && ( - This transaction is not completed + + This transaction is not completed + )}
@@ -151,16 +159,16 @@ export function TransactionView({
{showRetry ? ( - retry + Retry ) : null} - Forget + Forget
@@ -184,24 +192,30 @@ export function TransactionView({ {confirmBeforeForget ? ( -
Caution!
+
+ Caution! +
- If you have already wired money to the exchange you will loose - the chance to get the coins form it. + + If you have already wired money to the exchange you will loose + the chance to get the coins form it. +
- Confirm + Confirm
) : undefined} -

Withdrawal

+

+ Withdrawal +

currencyurlterm of service + Currency + + URL + + Term of Service +