aboutsummaryrefslogtreecommitdiff
path: root/packages/demobank-ui/src/hooks/access.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/demobank-ui/src/hooks/access.ts')
-rw-r--r--packages/demobank-ui/src/hooks/access.ts36
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