aboutsummaryrefslogtreecommitdiff
path: root/packages/demobank-ui/src
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2023-04-26 14:47:42 -0300
committerSebastian <sebasjm@gmail.com>2023-04-26 14:47:42 -0300
commit93e8010b5a30a0d4b61fb3e0c06c8eb602e30f2f (patch)
tree70929d6006408e8db9f56bcde8ac3686270028d0 /packages/demobank-ui/src
parent03d3cce8274fcbf6fb9cb8be03e867136f196c5d (diff)
downloadwallet-core-93e8010b5a30a0d4b61fb3e0c06c8eb602e30f2f.tar.gz
wallet-core-93e8010b5a30a0d4b61fb3e0c06c8eb602e30f2f.tar.bz2
wallet-core-93e8010b5a30a0d4b61fb3e0c06c8eb602e30f2f.zip
fix #7819
Diffstat (limited to 'packages/demobank-ui/src')
-rw-r--r--packages/demobank-ui/src/pages/QrCodeSection.tsx42
1 files changed, 39 insertions, 3 deletions
diff --git a/packages/demobank-ui/src/pages/QrCodeSection.tsx b/packages/demobank-ui/src/pages/QrCodeSection.tsx
index 919f2b1fe..dc92576fb 100644
--- a/packages/demobank-ui/src/pages/QrCodeSection.tsx
+++ b/packages/demobank-ui/src/pages/QrCodeSection.tsx
@@ -14,11 +14,21 @@
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import { stringifyWithdrawUri, WithdrawUriResult } from "@gnu-taler/taler-util";
-import { useTranslationContext } from "@gnu-taler/web-util/lib/index.browser";
+import {
+ HttpStatusCode,
+ stringifyWithdrawUri,
+ WithdrawUriResult,
+} from "@gnu-taler/taler-util";
+import {
+ RequestError,
+ useTranslationContext,
+} from "@gnu-taler/web-util/lib/index.browser";
import { h, VNode } from "preact";
import { useEffect } from "preact/hooks";
import { QR } from "../components/QR.js";
+import { useAccessAnonAPI } from "../hooks/access.js";
+import { notifyError } from "../hooks/notification.js";
+import { buildRequestErrorMessage } from "../utils.js";
export function QrCodeSection({
withdrawUri,
@@ -38,6 +48,7 @@ export function QrCodeSection({
}, []);
const talerWithdrawUri = stringifyWithdrawUri(withdrawUri);
+ const { abortWithdrawal } = useAccessAnonAPI();
return (
<section id="main" class="content">
<h1 class="nav">{i18n.str`Transfer to Taler Wallet`}</h1>
@@ -55,7 +66,32 @@ export function QrCodeSection({
<br />
<a
class="pure-button btn-cancel"
- onClick={onAborted}
+ onClick={async (e) => {
+ e.preventDefault();
+ try {
+ await abortWithdrawal(withdrawUri.withdrawalOperationId);
+ onAborted();
+ } catch (error) {
+ if (error instanceof RequestError) {
+ notifyError(
+ buildRequestErrorMessage(i18n, error.cause, {
+ onClientError: (status) =>
+ status === HttpStatusCode.Conflict
+ ? i18n.str`The reserve operation has been confirmed previously and can't be aborted`
+ : undefined,
+ }),
+ );
+ } else {
+ notifyError({
+ title: i18n.str`Operation failed, please report`,
+ description:
+ error instanceof Error
+ ? error.message
+ : JSON.stringify(error),
+ });
+ }
+ }
+ }}
>{i18n.str`Abort`}</a>
</div>
</article>