aboutsummaryrefslogtreecommitdiff
path: root/packages/challenger-ui/src/app.tsx
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-04-22 12:50:25 -0300
committerSebastian <sebasjm@gmail.com>2024-04-22 12:50:25 -0300
commit82b8e83ca635bd27954565e2c29c77e0a75b3fc0 (patch)
tree0f73cdfde72d2cbaa43be332a9beab1080283a89 /packages/challenger-ui/src/app.tsx
parent5db4cb99e3f16c8471117ca7443bc323180e67ec (diff)
downloadwallet-core-82b8e83ca635bd27954565e2c29c77e0a75b3fc0.tar.xz
fix #8398
Diffstat (limited to 'packages/challenger-ui/src/app.tsx')
-rw-r--r--packages/challenger-ui/src/app.tsx25
1 files changed, 23 insertions, 2 deletions
diff --git a/packages/challenger-ui/src/app.tsx b/packages/challenger-ui/src/app.tsx
index d85893c07..2b5c5c815 100644
--- a/packages/challenger-ui/src/app.tsx
+++ b/packages/challenger-ui/src/app.tsx
@@ -15,6 +15,9 @@
*/
import {
+ CacheEvictor,
+ ChallengerCacheEviction,
+ assertUnreachable,
canonicalizeBaseUrl,
getGlobalLogLevel,
setGlobalLogLevelFromString,
@@ -33,13 +36,28 @@ import { Routing } from "./Routing.js";
// import { BrowserHashNavigationProvider } from "./context/navigation.js";
import { SettingsProvider } from "./context/settings.js";
// import { TalerWalletIntegrationBrowserProvider } from "./context/wallet-integration.js";
-import { h } from "preact";
+import { VNode, h } from "preact";
import { strings } from "./i18n/strings.js";
import { ChallengerUiSettings, fetchSettings } from "./settings.js";
import { Frame } from "./pages/Frame.js";
+import { revalidateChallengeSession } from "./hooks/challenge.js";
const WITH_LOCAL_STORAGE_CACHE = false;
-export function App() {
+const evictBankSwrCache: CacheEvictor<ChallengerCacheEviction> = {
+ async notifySuccess(op) {
+ switch (op) {
+ case ChallengerCacheEviction.CREATE_CHALLENGE: {
+ await Promise.all([revalidateChallengeSession()]);
+ return;
+ }
+ default: {
+ assertUnreachable(op);
+ }
+ }
+ },
+};
+
+export function App(): VNode {
const [settings, setSettings] = useState<ChallengerUiSettings>();
useEffect(() => {
fetchSettings(setSettings);
@@ -60,6 +78,9 @@ export function App() {
<ChallengerApiProvider
baseUrl={new URL("/", baseUrl)}
frameOnError={Frame}
+ evictors={{
+ challenger: evictBankSwrCache,
+ }}
>
<SWRConfig
value={{