summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2024-04-08 22:52:53 +0200
committerFlorian Dold <florian@dold.me>2024-04-08 22:52:53 +0200
commitca60e97755d91d73b4f5fc3992ddb2db524cd5f2 (patch)
tree735fbdf759489191e97bfb38918a8ec0b5fb39bd /packages
parent18b77088bfc8699dfff64b70bb65b915f08d0fb6 (diff)
downloadwallet-core-ca60e97755d91d73b4f5fc3992ddb2db524cd5f2.tar.gz
wallet-core-ca60e97755d91d73b4f5fc3992ddb2db524cd5f2.tar.bz2
wallet-core-ca60e97755d91d73b4f5fc3992ddb2db524cd5f2.zip
wallet-core: fix cancellation
Diffstat (limited to 'packages')
-rw-r--r--packages/bank-ui/src/pages/BankFrame.tsx7
-rw-r--r--packages/taler-util/src/notifications.ts5
-rw-r--r--packages/taler-wallet-core/src/withdraw.ts16
-rw-r--r--packages/taler-wallet-webextension/src/components/WalletActivity.tsx4
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 <></>;
}
}