From 851b2da39c3297ede3d267f3d2534cac213261c1 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 4 Oct 2023 14:36:03 -0300 Subject: fixing issues reported by Christian, wip --- .../merchant-backoffice-ui/src/context/backend.ts | 26 +++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'packages/merchant-backoffice-ui/src/context/backend.ts') diff --git a/packages/merchant-backoffice-ui/src/context/backend.ts b/packages/merchant-backoffice-ui/src/context/backend.ts index 056f9a192..d4a9abd5f 100644 --- a/packages/merchant-backoffice-ui/src/context/backend.ts +++ b/packages/merchant-backoffice-ui/src/context/backend.ts @@ -20,35 +20,55 @@ */ import { createContext, h, VNode } from "preact"; -import { useContext } from "preact/hooks"; +import { useContext, useState } from "preact/hooks"; import { LoginToken } from "../declaration.js"; import { useBackendDefaultToken, useBackendURL } from "../hooks/index.js"; +import { buildStorageKey, useLocalStorage } from "@gnu-taler/web-util/browser"; +import { codecForBoolean } from "@gnu-taler/taler-util"; interface BackendContextType { url: string, + selected: boolean; token?: LoginToken; updateToken: (token: LoginToken | undefined) => void; changeBackend: (url: string) => void; + resetBackend: () => void; } const BackendContext = createContext({ url: "", + selected: false, token: undefined, updateToken: () => null, changeBackend: () => null, + resetBackend: () => null, }); +const BACKEND_SELECTED = buildStorageKey("backend-selected", codecForBoolean()); + function useBackendContextState( defaultUrl?: string, ): BackendContextType { - const [url, changeBackend] = useBackendURL(defaultUrl); + const [url, changeBackend2] = useBackendURL(defaultUrl); const [token, updateToken] = useBackendDefaultToken(); + const {value, update} = useLocalStorage(BACKEND_SELECTED) + + function changeBackend(s:string) { + changeBackend2(s) + update(true) + } + + function resetBackend() { + update(false) + } return { url, token, + selected: value ?? false, updateToken, - changeBackend + changeBackend, + resetBackend }; } -- cgit v1.2.3