From 5ea22a325c069fe497b2dc8a73d4de69fd8cc27b Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 14 Apr 2023 14:07:15 -0300 Subject: using new localStorage api, pageState => settings, notifcation using observer api --- packages/demobank-ui/src/hooks/index.ts | 40 +++++++++------------------------ 1 file changed, 11 insertions(+), 29 deletions(-) (limited to 'packages/demobank-ui/src/hooks/index.ts') diff --git a/packages/demobank-ui/src/hooks/index.ts b/packages/demobank-ui/src/hooks/index.ts index 263b53e1d..99da9e679 100644 --- a/packages/demobank-ui/src/hooks/index.ts +++ b/packages/demobank-ui/src/hooks/index.ts @@ -20,10 +20,7 @@ */ import { StateUpdater } from "preact/hooks"; -import { - useLocalStorage, - useNotNullLocalStorage, -} from "@gnu-taler/web-util/lib/index.browser"; +import { useLocalStorage } from "@gnu-taler/web-util/lib/index.browser"; export type ValueOrFunction = T | ((p: T) => T); const calculateRootPath = () => { @@ -37,38 +34,23 @@ const calculateRootPath = () => { export function useBackendURL( url?: string, ): [string, boolean, StateUpdater, () => void] { - const [value, setter] = useNotNullLocalStorage( + const { value, update: setter } = useLocalStorage( "backend-url", url || calculateRootPath(), ); - const [triedToLog, setTriedToLog] = useLocalStorage("tried-login"); + + const { + value: triedToLog, + update: setTriedToLog, + reset: resetBackend, + } = useLocalStorage("tried-login"); const checkedSetter = (v: ValueOrFunction) => { setTriedToLog("yes"); - return setter((p) => (v instanceof Function ? v(p) : v).replace(/\/$/, "")); + const computedValue = + v instanceof Function ? v(value) : v.replace(/\/$/, ""); + return setter(computedValue); }; - const resetBackend = () => { - setTriedToLog(undefined); - }; return [value, !!triedToLog, checkedSetter, resetBackend]; } - -export function useBackendDefaultToken(): [ - string | undefined, - StateUpdater, -] { - return useLocalStorage("backend-token"); -} - -export function useBackendInstanceToken( - id: string, -): [string | undefined, StateUpdater] { - const [token, setToken] = useLocalStorage(`backend-token-${id}`); - const [defaultToken, defaultSetToken] = useBackendDefaultToken(); - - // instance named 'default' use the default token - if (id === "default") return [defaultToken, defaultSetToken]; - - return [token, setToken]; -} -- cgit v1.2.3