taler-typescript-core

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

commit fc75c5c399176bff7dc1ca5f88b71fed804cc55b
parent 0c7e9f86c50db87cd2668e97357d8de4d3295ef7
Author: Sebastian <sebasjm@gmail.com>
Date:   Tue,  9 Jul 2024 16:27:12 -0300

cache cleanup for token family

Diffstat:
Mpackages/merchant-backoffice-ui/src/Application.tsx | 36+++++++++++++++++++-----------------
Mpackages/merchant-backoffice-ui/src/hooks/tokenfamily.ts | 16+++++++++++++++-
2 files changed, 34 insertions(+), 18 deletions(-)

diff --git a/packages/merchant-backoffice-ui/src/Application.tsx b/packages/merchant-backoffice-ui/src/Application.tsx @@ -79,6 +79,10 @@ import { revalidateOrderDetails, } from "./hooks/order.js"; import { SessionContextProvider } from "./context/session.js"; +import { + revalidateTokenFamilies, + revalidateTokenFamilyDetails, +} from "./hooks/tokenfamily.js"; const WITH_LOCAL_STORAGE_CACHE = false; export function Application(): VNode { @@ -345,23 +349,21 @@ const swrCacheEvictor = new (class await Promise.all([revalidateInstanceOrders()]); return; } - case TalerMerchantInstanceCacheEviction.LAST: - // case TalerMerchantInstanceCacheEviction.CREATE_TOKENFAMILY:{ - // await Promise.all([ - // reva - // ]) - // return - // } - // case TalerMerchantInstanceCacheEviction.UPDATE_TOKENFAMILY:{ - // await Promise.all([ - // ]) - // return - // } - // case TalerMerchantInstanceCacheEviction.DELETE_TOKENFAMILY:{ - // await Promise.all([ - // ]) - // return - // } + case TalerMerchantInstanceCacheEviction.CREATE_TOKENFAMILY: { + await Promise.all([revalidateTokenFamilies()]); + return; + } + case TalerMerchantInstanceCacheEviction.UPDATE_TOKENFAMILY: { + await Promise.all([revalidateTokenFamilyDetails()]); + return; + } + case TalerMerchantInstanceCacheEviction.DELETE_TOKENFAMILY: { + await Promise.all([revalidateTokenFamilies()]); + return; + } + case TalerMerchantInstanceCacheEviction.LAST: { + return; + } } } })(); diff --git a/packages/merchant-backoffice-ui/src/hooks/tokenfamily.ts b/packages/merchant-backoffice-ui/src/hooks/tokenfamily.ts @@ -17,9 +17,16 @@ import { useSessionContext } from "../context/session.js"; // FIX default import https://github.com/microsoft/TypeScript/issues/49189 import { AccessToken, TalerHttpError, TalerMerchantApi, TalerMerchantManagementResultByMethod } from "@gnu-taler/taler-util"; -import _useSWR, { SWRHook } from "swr"; +import _useSWR, { SWRHook, mutate } from "swr"; const useSWR = _useSWR as unknown as SWRHook; +export function revalidateTokenFamilies() { + return mutate( + (key) => Array.isArray(key) && key[key.length - 1] === "listTokenFamilies", + undefined, + { revalidate: true }, + ); +} export function useInstanceTokenFamilies() { const { state, lib } = useSessionContext(); @@ -45,6 +52,13 @@ export function useInstanceTokenFamilies() { return data; } +export function revalidateTokenFamilyDetails() { + return mutate( + (key) => Array.isArray(key) && key[key.length - 1] === "getTokenFamilyDetails", + undefined, + { revalidate: true }, + ); +} export function useTokenFamilyDetails(tokenFamilySlug: string) { const { state, lib } = useSessionContext();