summaryrefslogtreecommitdiff
path: root/packages/demobank-ui/src/hooks/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/demobank-ui/src/hooks/index.ts')
-rw-r--r--packages/demobank-ui/src/hooks/index.ts85
1 files changed, 41 insertions, 44 deletions
diff --git a/packages/demobank-ui/src/hooks/index.ts b/packages/demobank-ui/src/hooks/index.ts
index 795df909d..2126cada5 100644
--- a/packages/demobank-ui/src/hooks/index.ts
+++ b/packages/demobank-ui/src/hooks/index.ts
@@ -19,14 +19,14 @@
* @author Sebastian Javier Marchano (sebasjm)
*/
-import { StateUpdater, useState } from 'preact/hooks';
+import { StateUpdater, useState } from "preact/hooks";
export type ValueOrFunction<T> = T | ((p: T) => T);
const calculateRootPath = () => {
const rootPath =
typeof window !== undefined
? window.location.origin + window.location.pathname
- : '/';
+ : "/";
return rootPath;
};
@@ -34,14 +34,14 @@ export function useBackendURL(
url?: string,
): [string, boolean, StateUpdater<string>, () => void] {
const [value, setter] = useNotNullLocalStorage(
- 'backend-url',
+ "backend-url",
url || calculateRootPath(),
);
- const [triedToLog, setTriedToLog] = useLocalStorage('tried-login');
+ const [triedToLog, setTriedToLog] = useLocalStorage("tried-login");
const checkedSetter = (v: ValueOrFunction<string>) => {
- setTriedToLog('yes');
- return setter((p) => (v instanceof Function ? v(p) : v).replace(/\/$/, ''));
+ setTriedToLog("yes");
+ return setter((p) => (v instanceof Function ? v(p) : v).replace(/\/$/, ""));
};
const resetBackend = () => {
@@ -53,8 +53,8 @@ export function useBackendURL(
export function useBackendDefaultToken(): [
string | undefined,
StateUpdater<string | undefined>,
- ] {
- return useLocalStorage('backend-token');
+] {
+ return useLocalStorage("backend-token");
}
export function useBackendInstanceToken(
@@ -64,59 +64,60 @@ export function useBackendInstanceToken(
const [defaultToken, defaultSetToken] = useBackendDefaultToken();
// instance named 'default' use the default token
- if (id === 'default')
- return [defaultToken, defaultSetToken];
+ if (id === "default") return [defaultToken, defaultSetToken];
return [token, setToken];
}
export function useLang(initial?: string): [string, StateUpdater<string>] {
const browserLang =
- typeof window !== 'undefined'
+ typeof window !== "undefined"
? navigator.language || (navigator as any).userLanguage
: undefined;
- const defaultLang = (browserLang || initial || 'en').substring(0, 2);
- const [value, setValue] = useNotNullLocalStorage('lang-preference', defaultLang);
- function updateValue(newValue: (string | ((v: string) => string))) {
+ const defaultLang = (browserLang || initial || "en").substring(0, 2);
+ const [value, setValue] = useNotNullLocalStorage(
+ "lang-preference",
+ defaultLang,
+ );
+ function updateValue(newValue: string | ((v: string) => string)) {
if (document.body.parentElement) {
- const htmlElement = document.body.parentElement
- if (typeof newValue === 'string') {
+ const htmlElement = document.body.parentElement;
+ if (typeof newValue === "string") {
htmlElement.lang = newValue;
- setValue(newValue)
- } else if (typeof newValue === 'function')
+ setValue(newValue);
+ } else if (typeof newValue === "function")
setValue((old) => {
- const nv = newValue(old)
+ const nv = newValue(old);
htmlElement.lang = nv;
- return nv
- })
- } else setValue(newValue)
+ return nv;
+ });
+ } else setValue(newValue);
}
- return [value, updateValue]
+ return [value, updateValue];
}
export function useLocalStorage(
key: string,
initialValue?: string,
): [string | undefined, StateUpdater<string | undefined>] {
- const [storedValue, setStoredValue] = useState<string | undefined>(():
- | string
- | undefined => {
- return typeof window !== 'undefined'
- ? window.localStorage.getItem(key) || initialValue
- : initialValue;
- });
+ const [storedValue, setStoredValue] = useState<string | undefined>(
+ (): string | undefined => {
+ return typeof window !== "undefined"
+ ? window.localStorage.getItem(key) || initialValue
+ : initialValue;
+ },
+ );
const setValue = (
value?: string | ((val?: string) => string | undefined),
) => {
setStoredValue((p) => {
+ console.log("calling setStoredValue");
+ console.log(window);
const toStore = value instanceof Function ? value(p) : value;
- if (typeof window !== 'undefined')
- if (!toStore)
- window.localStorage.removeItem(key);
- else
- window.localStorage.setItem(key, toStore);
-
+ if (typeof window !== "undefined")
+ if (!toStore) window.localStorage.removeItem(key);
+ else window.localStorage.setItem(key, toStore);
return toStore;
});
@@ -130,7 +131,7 @@ export function useNotNullLocalStorage(
initialValue: string,
): [string, StateUpdater<string>] {
const [storedValue, setStoredValue] = useState<string>((): string => {
- return typeof window !== 'undefined'
+ return typeof window !== "undefined"
? window.localStorage.getItem(key) || initialValue
: initialValue;
});
@@ -138,13 +139,9 @@ export function useNotNullLocalStorage(
const setValue = (value: string | ((val: string) => string)) => {
const valueToStore = value instanceof Function ? value(storedValue) : value;
setStoredValue(valueToStore);
- if (typeof window !== 'undefined')
- if (!valueToStore)
- window.localStorage.removeItem(key);
- else
- window.localStorage.setItem(key, valueToStore);
-
-
+ if (typeof window !== "undefined")
+ if (!valueToStore) window.localStorage.removeItem(key);
+ else window.localStorage.setItem(key, valueToStore);
};
return [storedValue, setValue];