commit 1913ea0f622268fa6b9c5a91cb3a317d3c850cd0
parent 2938de7f9ec093488cef9ce4d088da495dc38f18
Author: Sebastian <sebasjm@taler-systems.com>
Date: Mon, 6 Apr 2026 14:22:05 -0300
fix broken build
Diffstat:
6 files changed, 48 insertions(+), 28 deletions(-)
diff --git a/packages/bank-ui/src/hooks/account.ts b/packages/bank-ui/src/hooks/account.ts
@@ -85,7 +85,6 @@ export function useWithdrawalDetails(wid: string | undefined) {
lib: { bank: api },
} = useBankCoreApiContext();
-
//FIXME: use swr
const prev = useAsync(
wid === undefined
@@ -98,17 +97,27 @@ export function useWithdrawalDetails(wid: string | undefined) {
const result = useLongPolling(
prev,
(result) => {
- if (!result || result instanceof TalerError || result.type === "fail") return undefined;
+ if (!result || result instanceof TalerError || result.type === "fail")
+ return false;
const { status } = result.body;
- return status === "pending" || status === "selected"
- ? result.body
- : undefined;
+ return status === "pending" || status === "selected";
},
- (ct, latestStatus: TalerCorebankApi.WithdrawalPublicInfo) => {
- return api.getWithdrawalById(wid!, {
- old_state: latestStatus.status,
+ async (ct, r) => {
+ if (
+ !r ||
+ r instanceof TalerError ||
+ r.type === "fail" ||
+ r.body.status === "confirmed" ||
+ r.body.status === "aborted"
+ ) {
+ return undefined;
+ }
+ const result = await api.getWithdrawalById(wid!, {
+ old_state: r.body.status,
timeoutMs: 5000,
+ ct,
});
+ return result;
},
[wid],
);
@@ -219,7 +228,7 @@ export function usePublicAccounts(
}
// TODO: consider sending this to web-util
-export function buildPaginatedResult<DataType,OffsetId>(
+export function buildPaginatedResult<DataType, OffsetId>(
data: readonly DataType[],
offset: OffsetId | undefined,
setOffset: (o: OffsetId | undefined) => void,
@@ -237,14 +246,18 @@ export function buildPaginatedResult<DataType,OffsetId>(
type: "ok",
case: "ok",
body: result,
- loadNext: isLastPage ? undefined :() => {
- if (!result.length) return;
- const id = getId(result[result.length - 1]);
- setOffset(id);
- },
- loadFirst: isFirstPage ? undefined : () => {
- setOffset(undefined);
- },
+ loadNext: isLastPage
+ ? undefined
+ : () => {
+ if (!result.length) return;
+ const id = getId(result[result.length - 1]);
+ setOffset(id);
+ },
+ loadFirst: isFirstPage
+ ? undefined
+ : () => {
+ setOffset(undefined);
+ },
};
}
diff --git a/packages/kyc-ui/src/hooks/kyc.ts b/packages/kyc-ui/src/hooks/kyc.ts
@@ -45,24 +45,29 @@ export function useKycInfo(token?: AccessToken) {
token === undefined
? undefined
: () => {
- return api.checkKycInfoSpa(token, undefined);
- },
+ return api.checkKycInfoSpa(token, undefined);
+ },
[token],
);
const result = useLongPolling(
prev,
(result) => {
- if (!result || result instanceof TalerError || result.type === "fail") return undefined;
- if (!result.body.requirements.length) return undefined;
- return result.body;
+ if (!result || result instanceof TalerError || result.type === "fail")
+ return false;
+ if (!result.body.requirements.length) return false;
+ return true;
},
- async (ct,latestStatus: KycProcessClientInformationWithEtag) => {
- const res = await api.checkKycInfoSpa(token!, latestStatus.etag, {
+ async (ct, result) => {
+ if (!result || (result instanceof TalerError) || result.type === "fail")
+ return undefined;
+ if (!result.body.requirements.length) return undefined;
+
+ const res = await api.checkKycInfoSpa(token!, result.body.etag, {
timeoutMs: 5000,
});
if (res.type === "fail" && res.case === HttpStatusCode.NotModified) {
- return opFixedSuccess(latestStatus);
+ return opFixedSuccess(result.body);
}
return res;
},
diff --git a/packages/merchant-backoffice-ui/src/hooks/order.ts b/packages/merchant-backoffice-ui/src/hooks/order.ts
@@ -80,7 +80,6 @@ export function useOrderDetailsWithLongPoll(orderId: string) {
async (ct, latestStatus) => {
if (latestStatus === undefined || latestStatus.type === "fail")
return undefined;
- console.log("doing long poll", latestStatus);
const r = await lib.instance.getOrderDetails(token!, orderId, {
longpoll: {
etag: latestStatus.body.etag!,
diff --git a/packages/taler-util/src/http-client/exchange-client.ts b/packages/taler-util/src/http-client/exchange-client.ts
@@ -811,7 +811,7 @@ export class TalerExchangeHttpClient {
case HttpStatusCode.Accepted:
return opKnownHttpFailure(resp.status, resp);
case HttpStatusCode.NoContent:
- return opKnownHttpFailure(resp.status, resp);
+ return opKnownFailure(resp.status);
case HttpStatusCode.NotModified:
// do not read details from response
return opKnownFailure(resp.status);
diff --git a/packages/taler-util/src/http-client/merchant.ts b/packages/taler-util/src/http-client/merchant.ts
@@ -94,6 +94,7 @@ import {
opEmptySuccess,
opFixedSuccess,
opKnownAlternativeHttpFailure,
+ opKnownFailure,
opKnownFailureWithBody,
opKnownHttpFailure,
opKnownTalerFailure,
@@ -894,7 +895,7 @@ export class TalerMerchantInstanceHttpClient {
case HttpStatusCode.NoContent:
// FIXME: using opKnownHttpFailure is wrong here
// we expect to read a body with the error description
- return opKnownHttpFailure(resp.status, resp, {} as any);
+ return opKnownFailure(resp.status);
case HttpStatusCode.NotModified:
return opKnownFailureWithBody(resp.status, { etag });
case HttpStatusCode.Unauthorized: // FIXME: missing in docs
diff --git a/packages/taler-util/src/types-taler-common.ts b/packages/taler-util/src/types-taler-common.ts
@@ -28,6 +28,7 @@
*/
import { codecForAmountString } from "./amounts.js";
+import { CancellationToken } from "./CancellationToken.js";
import {
Codec,
buildCodecForObject,
@@ -550,6 +551,7 @@ export type LongPollParams = {
* milliseconds the server should wait for at least one result to be shown
*/
timeoutMs?: number;
+ ct?: CancellationToken;
};
export interface LoginToken {