diff options
| author | Sebastian <sebasjm@gmail.com> | 2023-01-11 15:26:07 -0300 | 
|---|---|---|
| committer | Sebastian <sebasjm@gmail.com> | 2023-01-11 15:30:14 -0300 | 
| commit | e87073d42a2f51405d1a1f6be27cb378b552dcdf (patch) | |
| tree | 841e2b994eae7c91d58ffdbc81d8662e0bda90d7 /packages | |
| parent | 335d22b12b3d8ed1a14d39bf8ca17faade9ca34c (diff) | |
add kyc warning
Diffstat (limited to 'packages')
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> | 
