[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-wallet-core] 02/02: add kyc warning
From: |
gnunet |
Subject: |
[taler-wallet-core] 02/02: add kyc warning |
Date: |
Wed, 11 Jan 2023 19:30:32 +0100 |
This is an automated email from the git hooks/post-receive script.
sebasjm pushed a commit to branch master
in repository wallet-core.
commit e87073d42a2f51405d1a1f6be27cb378b552dcdf
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Wed Jan 11 15:26:07 2023 -0300
add kyc warning
---
.../src/wallet/ExchangeSelection/views.tsx | 19 ++++++++++--
.../src/wallet/Transaction.stories.tsx | 14 +++++++++
.../src/wallet/Transaction.tsx | 35 +++++++++++++++++-----
3 files changed, 58 insertions(+), 10 deletions(-)
diff --git
a/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/views.tsx
b/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/views.tsx
index d01ce7ca0..fd5c0cfe3 100644
--- a/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/views.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/views.tsx
@@ -19,6 +19,7 @@ import { styled } from "@linaria/react";
import { Fragment, h, VNode } from "preact";
import { useState } from "preact/hooks";
import { Amount } from "../../components/Amount.js";
+import { AlertView } from "../../components/CurrentAlerts.js";
import { ErrorMessage } from "../../components/ErrorMessage.js";
import { SelectList } from "../../components/SelectList.js";
import { Input, SvgIcon } from "../../components/styled/index.js";
@@ -144,11 +145,23 @@ export function NoExchangesView({
}: SelectExchangeState.NoExchange): VNode {
const { i18n } = useTranslationContext();
if (!currency) {
- return <ErrorMessage title={i18n.str`Could not find any exchange`} />;
+ return (
+ <AlertView
+ alert={{
+ type: "warning",
+ message: i18n.str`Could not find any exchange `,
+ description: i18n.str`You are trying to withdraw coins but there is
no exchange and the bank didn't suggested one.`,
+ }}
+ />
+ );
}
return (
- <ErrorMessage
- title={i18n.str`Could not find any exchange for the currency
${currency}`}
+ <AlertView
+ alert={{
+ type: "warning",
+ message: i18n.str`Could not find any exchange `,
+ description: i18n.str`You are trying to withdraw coins for the
currency ${currency} but there is no exchange registered in this wallet and the
bank didn't suggested one.`,
+ }}
/>
);
}
diff --git
a/packages/taler-wallet-webextension/src/wallet/Transaction.stories.tsx
b/packages/taler-wallet-webextension/src/wallet/Transaction.stories.tsx
index cc2ed9013..f2ebb3919 100644
--- a/packages/taler-wallet-webextension/src/wallet/Transaction.stories.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/Transaction.stories.tsx
@@ -221,6 +221,14 @@ const transactionError = {
message: "Unexpected error code in response",
};
+const kycError = {
+ code: 7025,
+ hint: "KYC check required for withdrawal",
+ kycUrl:
+
"http://localhost:6666/oauth/v2/login?client_id=taler-exchange&redirect_uri=http%3A%2F%2Flocalhost%3A8081%2F%2Fkyc-proof%2F59WFS5VXXY3CEE25BM45XPB7ZCDQZNZ46PJCMNXK05P65T9M1X90%2FKYC-PROVIDER-MYPROV%2F1",
+ when: AbsoluteTime.now(),
+};
+
export const Withdraw = tests.createExample(TestedComponent, {
transaction: exampleData.withdraw,
});
@@ -257,6 +265,12 @@ export const WithdrawError =
tests.createExample(TestedComponent, {
},
});
+export const WithdrawErrorKYC = tests.createExample(TestedComponent, {
+ transaction: {
+ ...exampleData.withdraw,
+ error: kycError,
+ },
+});
// export const WithdrawErrorInDevMode = tests.createExampleInCustomContext(
// TestedComponent,
// {
diff --git a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx
b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx
index f22f3b4ee..c6fa9ec68 100644
--- a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx
@@ -44,7 +44,7 @@ import emptyImg from "../../static/img/empty.png";
import { Amount } from "../components/Amount.js";
import { BankDetailsByPaytoType } from
"../components/BankDetailsByPaytoType.js";
import { CopyButton } from "../components/CopyButton.js";
-import { ErrorAlertView } from "../components/CurrentAlerts.js";
+import { AlertView, ErrorAlertView } from "../components/CurrentAlerts.js";
import { Loading } from "../components/Loading.js";
import { Kind, Part, PartCollapsible, PartPayto } from "../components/Part.js";
import { QR } from "../components/QR.js";
@@ -199,12 +199,33 @@ export function TransactionView({
<Fragment>
<section style={{ padding: 8, textAlign: "center" }}>
{transaction?.error ? (
- <ErrorAlertView
- error={alertFromError(
- i18n.str`There was an error trying to complete the
transaction`,
- transaction.error,
- )}
- />
+ transaction.error.code === 7025 ? (
+ <AlertView
+ alert={{
+ type: "warning",
+ message: i18n.str`KYC check required for the transaction to
complete`,
+ description:
+ transaction.error.kycUrl &&
+ typeof transaction.error.kycUrl === "string" ? (
+ <div>
+ <i18n.Translate>
+ Follow this link to the{` `}
+ <a href={transaction.error.kycUrl}>KYC verifier</a>
+ </i18n.Translate>
+ </div>
+ ) : (
+ i18n.str`No more information has been provided`
+ ),
+ }}
+ />
+ ) : (
+ <ErrorAlertView
+ error={alertFromError(
+ i18n.str`There was an error trying to complete the
transaction`,
+ transaction.error,
+ )}
+ />
+ )
) : undefined}
{transaction.pending && (
<WarningBox>
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.