taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 5d4702c6d106705060f1bccbedd35bf3f7aacbc4
parent 78ac0beae5ca9d1b91aee388ac7de744fe37644d
Author: Florian Dold <florian@dold.me>
Date:   Mon, 23 Feb 2026 20:18:03 +0100

fix FTBFS, some drive-by cleanup

Diffstat:
Mpackages/merchant-backoffice-ui/src/hooks/instance.ts | 79++++++++++++++++++++++++++-----------------------------------------------------
1 file changed, 26 insertions(+), 53 deletions(-)

diff --git a/packages/merchant-backoffice-ui/src/hooks/instance.ts b/packages/merchant-backoffice-ui/src/hooks/instance.ts @@ -14,15 +14,16 @@ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> */ -// FIX default import https://github.com/microsoft/TypeScript/issues/49189 import { AccessToken, TalerHttpError, - TalerMerchantManagementResultByMethod + TalerMerchantManagementResultByMethod, } from "@gnu-taler/taler-util"; -import { delayMs, LONG_POLL_DELAY, useLongPolling } from "@gnu-taler/web-util/browser"; -import _useSWR, { mutate, SWRHook } from "swr"; +import { LONG_POLL_DELAY, useLongPolling } from "@gnu-taler/web-util/browser"; import { useSessionContext } from "../context/session.js"; + +// Fix default import https://github.com/microsoft/TypeScript/issues/49189 +import _useSWR, { mutate, SWRHook } from "swr"; const useSWR = _useSWR as unknown as SWRHook; export function revalidateInstanceDetails() { @@ -33,6 +34,7 @@ export function revalidateInstanceDetails() { { revalidate: true }, ); } + export function useInstanceDetails() { const { state, lib } = useSessionContext(); @@ -50,44 +52,9 @@ export function useInstanceDetails() { return undefined; } -export function revalidateInstanceKYCDetails() { - return mutate( - (key) => - Array.isArray(key) && - key[key.length - 1] === "getCurrentIntanceKycStatus", - undefined, - { revalidate: true }, - ); -} - - - -let latestRequestTime = 0; -/** - * return a handler that calls f() but it will wait - * if it is called faster that $delay. - * - * this is useful for lonpoll against server since - * server may return earlier and we should not - * request againt fast - * - * @param f - * @param delay - */ -async function preventRequestBurst<T>(waitBeforeCall: number, f: () => Promise<T>) { - const now = new Date().getTime(); - const diff = now - latestRequestTime; - if (diff < waitBeforeCall) { - console.log("PREVENT REQUEST BURST"); - await delayMs(diff + 10); - } - latestRequestTime = new Date().getTime(); - return f() -} - export function useInstanceKYCDetailsLongPolling() { const { state, lib } = useSessionContext(); - const token = state.token + const token = state.token; async function fetcher([token]: [AccessToken]) { return await lib.instance.getCurrentInstanceKycStatus(token); @@ -101,33 +68,40 @@ export function useInstanceKYCDetailsLongPolling() { const result = useLongPolling( data, (result) => { - if (!result || result.type === "fail") return undefined; - if (!result.body.etag) return undefined; - return result.body.etag + if ( + !result || + result.type === "fail" || + !result.body.kycRequired || + !result.body.etag + ) { + return undefined; + } + return result.body.etag; }, async (latestEtag) => { const r = await lib.instance.getCurrentInstanceKycStatus(token!, { longpoll: { type: "state-change", etag: latestEtag, - timeout: LONG_POLL_DELAY - } + timeout: LONG_POLL_DELAY, + }, }); - mutate(r, { revalidate: false}) - return r + mutate(r, { revalidate: false }); + return r; }, [], - { minTime: LONG_POLL_DELAY } + { minTime: LONG_POLL_DELAY }, ); - if (error) return error; + if (error) { + return error; + } return result; - } export function useInstanceKYCDetails() { const { state, lib } = useSessionContext(); - const token = state.token + const token = state.token; async function fetcher([token]: [AccessToken]) { return await lib.instance.getCurrentInstanceKycStatus(token); @@ -140,10 +114,8 @@ export function useInstanceKYCDetails() { if (error) return error; return data; - } - export function revalidateManagedInstanceDetails() { return mutate( (key) => Array.isArray(key) && key[key.length - 1] === "getInstanceDetails", @@ -175,6 +147,7 @@ export function revalidateBackendInstances() { { revalidate: true }, ); } + export function useBackendInstances() { const { state, lib } = useSessionContext();