gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] branch master updated: wallet-core: fix cancellation


From: gnunet
Subject: [taler-wallet-core] branch master updated: wallet-core: fix cancellation
Date: Mon, 08 Apr 2024 22:52:55 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository wallet-core.

The following commit(s) were added to refs/heads/master by this push:
     new ca60e9775 wallet-core: fix cancellation
ca60e9775 is described below

commit ca60e97755d91d73b4f5fc3992ddb2db524cd5f2
Author: Florian Dold <florian@dold.me>
AuthorDate: Mon Apr 8 22:52:53 2024 +0200

    wallet-core: fix cancellation
---
 packages/bank-ui/src/pages/BankFrame.tsx                 |  7 ++++---
 packages/taler-util/src/notifications.ts                 |  5 +++++
 packages/taler-wallet-core/src/withdraw.ts               | 16 +++++++++++++++-
 .../src/components/WalletActivity.tsx                    |  4 ++++
 4 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/packages/bank-ui/src/pages/BankFrame.tsx 
b/packages/bank-ui/src/pages/BankFrame.tsx
index 30f143828..db757ee07 100644
--- a/packages/bank-ui/src/pages/BankFrame.tsx
+++ b/packages/bank-ui/src/pages/BankFrame.tsx
@@ -26,14 +26,16 @@ import {
   Footer,
   Header,
   Loading,
+  RouteDefinition,
   ToastBanner,
   notifyError,
   notifyException,
+  useBankCoreApiContext,
   useTranslationContext,
 } from "@gnu-taler/web-util/browser";
 import { ComponentChildren, Fragment, VNode, h } from "preact";
 import { useEffect, useErrorBoundary, useState } from "preact/hooks";
-import { useBankCoreApiContext } from "@gnu-taler/web-util/browser";
+import { privatePages } from "../Routing.js";
 import { useSettingsContext } from "../context/settings.js";
 import { useAccountDetails } from "../hooks/account.js";
 import { useBankState } from "../hooks/bank-state.js";
@@ -43,9 +45,7 @@ import {
   usePreferences,
 } from "../hooks/preferences.js";
 import { useSessionState } from "../hooks/session.js";
-import { RouteDefinition } from "@gnu-taler/web-util/browser";
 import { RenderAmount } from "./PaytoWireTransferForm.js";
-import { privatePages } from "../Routing.js";
 
 const GIT_HASH = typeof __GIT_HASH__ !== "undefined" ? __GIT_HASH__ : 
undefined;
 const VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : undefined;
@@ -273,6 +273,7 @@ function AppActivity(): VNode {
         case ObservabilityEventType.CryptoStart:
         case ObservabilityEventType.CryptoFinishSuccess:
         case ObservabilityEventType.CryptoFinishError:
+        case ObservabilityEventType.Message:
           return;
         default: {
           assertUnreachable(ev);
diff --git a/packages/taler-util/src/notifications.ts 
b/packages/taler-util/src/notifications.ts
index 7ef474754..1c6ca4b85 100644
--- a/packages/taler-util/src/notifications.ts
+++ b/packages/taler-util/src/notifications.ts
@@ -129,6 +129,7 @@ export enum ObservabilityEventType {
   CryptoStart = "crypto-start",
   CryptoFinishSuccess = "crypto-finish-success",
   CryptoFinishError = "crypto-finish-error",
+  Message = "message",
 }
 
 export type ObservabilityEvent =
@@ -208,6 +209,10 @@ export type ObservabilityEvent =
   | {
       type: ObservabilityEventType.ShepherdTaskResult;
       resultType: string;
+    }
+  | {
+      type: ObservabilityEventType.Message;
+      contents: string;
     };
 
 export interface BackupOperationErrorNotification {
diff --git a/packages/taler-wallet-core/src/withdraw.ts 
b/packages/taler-wallet-core/src/withdraw.ts
index 68ff9d494..7ec62a46b 100644
--- a/packages/taler-wallet-core/src/withdraw.ts
+++ b/packages/taler-wallet-core/src/withdraw.ts
@@ -54,6 +54,7 @@ import {
   LibtoolVersion,
   Logger,
   NotificationType,
+  ObservabilityEventType,
   TalerBankIntegrationHttpClient,
   TalerError,
   TalerErrorCode,
@@ -3167,12 +3168,25 @@ export async function getWithdrawalDetailsForAmount(
   if (clientCancelKey) {
     const prevCts = wex.ws.clientCancellationMap.get(clientCancelKey);
     if (prevCts) {
+      wex.oc.observe({
+        type: ObservabilityEventType.Message,
+        contents: `Cancelling previous key ${clientCancelKey}`,
+      });
       prevCts.cancel();
+    } else {
+      wex.oc.observe({
+        type: ObservabilityEventType.Message,
+        contents: `No previous key ${clientCancelKey}`,
+      });
     }
+    wex.oc.observe({
+      type: ObservabilityEventType.Message,
+      contents: `Setting clientCancelKey ${clientCancelKey} to ${cts}`,
+    });
     wex.ws.clientCancellationMap.set(clientCancelKey, cts);
   }
   try {
-    return internalGetWithdrawalDetailsForAmount(wex, req);
+    return await internalGetWithdrawalDetailsForAmount(wex, req);
   } finally {
     if (clientCancelKey && !cts.token.isCancelled) {
       wex.ws.clientCancellationMap.delete(clientCancelKey);
diff --git 
a/packages/taler-wallet-webextension/src/components/WalletActivity.tsx 
b/packages/taler-wallet-webextension/src/components/WalletActivity.tsx
index 60839e1f0..1c566c3e4 100644
--- a/packages/taler-wallet-webextension/src/components/WalletActivity.tsx
+++ b/packages/taler-wallet-webextension/src/components/WalletActivity.tsx
@@ -262,6 +262,7 @@ function ShowObservabilityEvent({ events, onClick }: 
MoreInfoPRops): VNode {
         case ObservabilityEventType.TaskReset: return "Task reset"
         case ObservabilityEventType.ShepherdTaskResult: return "Schedule"
         case ObservabilityEventType.DeclareTaskDependency: return "Task 
dependency"
+        case ObservabilityEventType.Message: return "Message"
       }
     })();
 
@@ -491,6 +492,9 @@ function ShowObervavilityDetails({ title, notif, onClick, 
prev }: { title: strin
         </td>
       </tr>
     }
+    case ObservabilityEventType.Message:
+      // FIXME
+      return <></>;
   }
 }
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]