diff options
author | Sebastian <sebasjm@gmail.com> | 2023-04-14 14:07:15 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2023-04-14 14:16:25 -0300 |
commit | 5ea22a325c069fe497b2dc8a73d4de69fd8cc27b (patch) | |
tree | 7783c8a47c5f645a2c277bb0251863e4d6165dde /packages/demobank-ui/src/hooks/index.ts | |
parent | c3e1a0bb519bf5012781891c15c433841203bce2 (diff) | |
download | wallet-core-5ea22a325c069fe497b2dc8a73d4de69fd8cc27b.tar.xz |
using new localStorage api, pageState => settings, notifcation using observer api
Diffstat (limited to 'packages/demobank-ui/src/hooks/index.ts')
-rw-r--r-- | packages/demobank-ui/src/hooks/index.ts | 40 |
1 files changed, 11 insertions, 29 deletions
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> = T | ((p: T) => T); const calculateRootPath = () => { @@ -37,38 +34,23 @@ const calculateRootPath = () => { export function useBackendURL( url?: string, ): [string, boolean, StateUpdater<string>, () => 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<string>) => { 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<string | undefined>, -] { - return useLocalStorage("backend-token"); -} - -export function useBackendInstanceToken( - id: string, -): [string | undefined, StateUpdater<string | undefined>] { - 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]; -} |