diff options
Diffstat (limited to 'packages/demobank-ui/src/hooks/access.ts')
-rw-r--r-- | packages/demobank-ui/src/hooks/access.ts | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/packages/demobank-ui/src/hooks/access.ts b/packages/demobank-ui/src/hooks/access.ts index fc1cff129..80ef1874f 100644 --- a/packages/demobank-ui/src/hooks/access.ts +++ b/packages/demobank-ui/src/hooks/access.ts @@ -14,13 +14,13 @@ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> */ -import { AccessToken, TalerBankIntegrationResultByMethod, TalerCoreBankResultByMethod, TalerHttpError, WithdrawalOperationStatus } from "@gnu-taler/taler-util"; +import { AccessToken, TalerCoreBankResultByMethod, TalerHttpError, WithdrawalOperationStatus } from "@gnu-taler/taler-util"; import { useEffect, useState } from "preact/hooks"; import { MAX_RESULT_SIZE, PAGE_SIZE } from "../utils.js"; import { useBackendState } from "./backend.js"; // FIX default import https://github.com/microsoft/TypeScript/issues/49189 -import _useSWR, { SWRHook } from "swr"; +import _useSWR, { SWRHook, mutate } from "swr"; import { useBankCoreApiContext } from "../context/config.js"; const useSWR = _useSWR as unknown as SWRHook; @@ -30,6 +30,10 @@ export interface InstanceTemplateFilter { position?: string; } +export function revalidateAccountDetails() { + mutate(key => Array.isArray(key) && key[key.length - 1] === "getAccount", undefined, { revalidate: true }) +} + export function useAccountDetails(account: string) { const { state: credentials } = useBackendState(); const { api } = useBankCoreApiContext(); @@ -40,15 +44,6 @@ export function useAccountDetails(account: string) { const token = credentials.status !== "loggedIn" ? undefined : credentials.token const { data, error } = useSWR<TalerCoreBankResultByMethod<"getAccount">, TalerHttpError>( [account, token, "getAccount"], fetcher, { - refreshInterval: 0, - refreshWhenHidden: false, - revalidateOnFocus: false, - revalidateOnReconnect: false, - refreshWhenOffline: false, - errorRetryCount: 0, - errorRetryInterval: 1, - shouldRetryOnError: false, - keepPreviousData: true, }); if (data) return data @@ -56,6 +51,10 @@ export function useAccountDetails(account: string) { return undefined; } +export function revalidateWithdrawalDetails() { + mutate(key => Array.isArray(key) && key[key.length - 1] === "getWithdrawalById") +} + export function useWithdrawalDetails(wid: string) { const { api } = useBankCoreApiContext(); const [latestStatus, setLatestStatus] = useState<WithdrawalOperationStatus>() @@ -90,6 +89,9 @@ export function useWithdrawalDetails(wid: string) { return undefined; } +export function revalidateTransactionDetails() { + mutate(key => Array.isArray(key) && key[key.length - 1] === "getTransactionById") +} export function useTransactionDetails(account: string, tid: number) { const { state: credentials } = useBackendState(); const token = credentials.status !== "loggedIn" ? undefined : credentials.token @@ -117,6 +119,9 @@ export function useTransactionDetails(account: string, tid: number) { return undefined; } +export function revalidatePublicAccounts() { + mutate(key => Array.isArray(key) && key[key.length - 1] === "getPublicAccounts") +} export function usePublicAccounts(filterAccount: string | undefined, initial?: number) { const [offset, setOffset] = useState<number | undefined>(initial); const { api } = useBankCoreApiContext(); @@ -171,12 +176,9 @@ export function usePublicAccounts(filterAccount: string | undefined, initial?: n return undefined; } -/** - - * @param account - * @param args - * @returns - */ +export function revalidateTransactions() { + mutate(key => Array.isArray(key) && key[key.length - 1] === "getTransactions", undefined, { revalidate: true }) +} export function useTransactions(account: string, initial?: number) { const { state: credentials } = useBackendState(); const token = credentials.status !== "loggedIn" ? undefined : credentials.token |