From 3e060b80428943c6562250a6ff77eff10a0259b7 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 24 Oct 2022 10:46:14 +0200 Subject: repo: integrate packages from former merchant-backoffice.git --- .../src/paths/instance/kyc/list/ListPage.tsx | 178 +++++++++++++++++++++ .../src/paths/instance/kyc/list/index.tsx | 51 ++++++ 2 files changed, 229 insertions(+) create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/kyc/list/ListPage.tsx create mode 100644 packages/merchant-backoffice-ui/src/paths/instance/kyc/list/index.tsx (limited to 'packages/merchant-backoffice-ui/src/paths/instance/kyc') diff --git a/packages/merchant-backoffice-ui/src/paths/instance/kyc/list/ListPage.tsx b/packages/merchant-backoffice-ui/src/paths/instance/kyc/list/ListPage.tsx new file mode 100644 index 000000000..52363d3cd --- /dev/null +++ b/packages/merchant-backoffice-ui/src/paths/instance/kyc/list/ListPage.tsx @@ -0,0 +1,178 @@ +/* + This file is part of GNU Taler + (C) 2021 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see + */ + +/** + * + * @author Sebastian Javier Marchano (sebasjm) + */ + +import { h, VNode } from "preact"; +import { MerchantBackend } from "../../../../declaration"; +import { Translate, useTranslator } from "../../../../i18n"; + +export interface Props { + status: MerchantBackend.Instances.AccountKycRedirects; +} + +export function ListPage({ status }: Props): VNode { + const i18n = useTranslator(); + + return ( +
+
+
+

+ + + + Pending KYC verification +

+ +
+
+
+
+
+ {status.pending_kycs.length > 0 ? ( + + ) : ( + + )} +
+
+
+
+ + {status.timeout_kycs.length > 0 ? ( +
+
+

+ + + + Timed out +

+ +
+
+
+
+
+ {status.timeout_kycs.length > 0 ? ( + + ) : ( + + )} +
+
+
+
+ ) : undefined} +
+ ); +} +interface PendingTableProps { + entries: MerchantBackend.Instances.MerchantAccountKycRedirect[]; +} + +interface TimedOutTableProps { + entries: MerchantBackend.Instances.ExchangeKycTimeout[]; +} + +function PendingTable({ entries }: PendingTableProps): VNode { + return ( +
+ + + + + + + + + + {entries.map((e, i) => { + return ( + + + + + + ); + })} + +
+ Exchange + + Target account + + KYC URL +
{e.exchange_url}{e.payto_uri} + + {e.kyc_url} + +
+
+ ); +} + +function TimedOutTable({ entries }: TimedOutTableProps): VNode { + return ( +
+ + + + + + + + + + {entries.map((e, i) => { + return ( + + + + + + ); + })} + +
+ Exchange + + Code + + Http Status +
{e.exchange_url}{e.exchange_code}{e.exchange_http_status}
+
+ ); +} + +function EmptyTable(): VNode { + return ( +
+

+ + + +

+

+ No pending kyc verification! +

+
+ ); +} diff --git a/packages/merchant-backoffice-ui/src/paths/instance/kyc/list/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/kyc/list/index.tsx new file mode 100644 index 000000000..5dff01994 --- /dev/null +++ b/packages/merchant-backoffice-ui/src/paths/instance/kyc/list/index.tsx @@ -0,0 +1,51 @@ +/* + This file is part of GNU Taler + (C) 2021 Taler Systems S.A. + + GNU Taler is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + GNU Taler; see the file COPYING. If not, see + */ + +/** + * + * @author Sebastian Javier Marchano (sebasjm) + */ + +import { h, VNode } from "preact"; +import { Loading } from "../../../../components/exception/loading"; +import { HttpError } from "../../../../hooks/backend"; +import { useInstanceKYCDetails } from "../../../../hooks/instance"; +import { ListPage } from "./ListPage"; + +interface Props { + onUnauthorized: () => VNode; + onLoadError: (error: HttpError) => VNode; + onNotFound: () => VNode; +} + +export default function ListKYC({ + onUnauthorized, + onLoadError, + onNotFound, +}: Props): VNode { + const result = useInstanceKYCDetails(); + if (result.clientError && result.isUnauthorized) return onUnauthorized(); + if (result.clientError && result.isNotfound) return onNotFound(); + if (result.loading) return ; + if (!result.ok) return onLoadError(result); + + const status = result.data.type === "ok" ? undefined : result.data.status; + + if (!status) { + return
no kyc required
; + } + return ; +} -- cgit v1.2.3