summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/hooks
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-webextension/src/hooks')
-rw-r--r--packages/taler-wallet-webextension/src/hooks/useAsyncAsHook.ts20
-rw-r--r--packages/taler-wallet-webextension/src/hooks/useExtendedPermissions.ts22
-rw-r--r--packages/taler-wallet-webextension/src/hooks/useLang.ts8
-rw-r--r--packages/taler-wallet-webextension/src/hooks/useLocalStorage.ts14
-rw-r--r--packages/taler-wallet-webextension/src/hooks/useTalerActionURL.test.ts39
-rw-r--r--packages/taler-wallet-webextension/src/hooks/useTalerActionURL.ts2
6 files changed, 55 insertions, 50 deletions
diff --git a/packages/taler-wallet-webextension/src/hooks/useAsyncAsHook.ts b/packages/taler-wallet-webextension/src/hooks/useAsyncAsHook.ts
index 04a6dbb18..d13a68383 100644
--- a/packages/taler-wallet-webextension/src/hooks/useAsyncAsHook.ts
+++ b/packages/taler-wallet-webextension/src/hooks/useAsyncAsHook.ts
@@ -13,9 +13,7 @@
You should have received a copy of the GNU General Public License along with
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import {
- NotificationType, TalerErrorDetail
-} from "@gnu-taler/taler-util";
+import { NotificationType, TalerErrorDetail } from "@gnu-taler/taler-util";
import { TalerError } from "@gnu-taler/taler-wallet-core";
import { useEffect, useMemo, useState } from "preact/hooks";
import * as wxApi from "../wxApi.js";
@@ -44,19 +42,23 @@ interface WithRetry {
}
export type HookResponse<T> = HookOk<T> | HookError | undefined;
-export type HookResponseWithRetry<T> = ((HookOk<T> | HookError) & WithRetry) | undefined;
+export type HookResponseWithRetry<T> =
+ | ((HookOk<T> | HookError) & WithRetry)
+ | undefined;
export function useAsyncAsHook<T>(
fn: () => Promise<T | false>,
deps?: any[],
): HookResponseWithRetry<T> {
-
const [result, setHookResponse] = useState<HookResponse<T>>(undefined);
- const args = useMemo(() => ({
- fn
- // eslint-disable-next-line react-hooks/exhaustive-deps
- }), deps || [])
+ const args = useMemo(
+ () => ({
+ fn,
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }),
+ deps || [],
+ );
async function doAsync(): Promise<void> {
try {
diff --git a/packages/taler-wallet-webextension/src/hooks/useExtendedPermissions.ts b/packages/taler-wallet-webextension/src/hooks/useExtendedPermissions.ts
index e3ea56d1b..08bb39668 100644
--- a/packages/taler-wallet-webextension/src/hooks/useExtendedPermissions.ts
+++ b/packages/taler-wallet-webextension/src/hooks/useExtendedPermissions.ts
@@ -24,9 +24,9 @@ export function useExtendedPermissions(): ToggleHandler {
const [enabled, setEnabled] = useState(false);
const [error, setError] = useState<TalerError | undefined>();
const toggle = async (): Promise<void> => {
- return handleExtendedPerm(enabled, setEnabled).catch(e => {
- setError(TalerError.fromException(e))
- })
+ return handleExtendedPerm(enabled, setEnabled).catch((e) => {
+ setError(TalerError.fromException(e));
+ });
};
useEffect(() => {
@@ -40,12 +40,15 @@ export function useExtendedPermissions(): ToggleHandler {
value: enabled,
button: {
onClick: toggle,
- error
- }
+ error,
+ },
};
}
-async function handleExtendedPerm(isEnabled: boolean, onChange: (value: boolean) => void): Promise<void> {
+async function handleExtendedPerm(
+ isEnabled: boolean,
+ onChange: (value: boolean) => void,
+): Promise<void> {
if (!isEnabled) {
// We set permissions here, since apparently FF wants this to be done
// as the result of an input event ...
@@ -60,11 +63,10 @@ async function handleExtendedPerm(isEnabled: boolean, onChange: (value: boolean)
onChange(res.newValue);
} else {
try {
- await wxApi.toggleHeaderListener(false).then(r => onChange(r.newValue));
+ await wxApi.toggleHeaderListener(false).then((r) => onChange(r.newValue));
} catch (e) {
- console.log(e)
+ console.log(e);
}
-
}
- return
+ return;
}
diff --git a/packages/taler-wallet-webextension/src/hooks/useLang.ts b/packages/taler-wallet-webextension/src/hooks/useLang.ts
index 0436f25df..46f3e1188 100644
--- a/packages/taler-wallet-webextension/src/hooks/useLang.ts
+++ b/packages/taler-wallet-webextension/src/hooks/useLang.ts
@@ -17,12 +17,14 @@
import { useNotNullLocalStorage } from "./useLocalStorage.js";
function getBrowserLang(): string | undefined {
- if (window.navigator.languages) return window.navigator.languages[0]
- if (window.navigator.language) return window.navigator.language
+ if (window.navigator.languages) return window.navigator.languages[0];
+ if (window.navigator.language) return window.navigator.language;
return undefined;
}
-export function useLang(initial?: string): [string, (s: string) => void, boolean] {
+export function useLang(
+ initial?: string,
+): [string, (s: string) => void, boolean] {
const defaultLang = (getBrowserLang() || initial || "en").substring(0, 2);
return useNotNullLocalStorage("lang-preference", defaultLang);
}
diff --git a/packages/taler-wallet-webextension/src/hooks/useLocalStorage.ts b/packages/taler-wallet-webextension/src/hooks/useLocalStorage.ts
index 31d54e451..ed0f1d2bb 100644
--- a/packages/taler-wallet-webextension/src/hooks/useLocalStorage.ts
+++ b/packages/taler-wallet-webextension/src/hooks/useLocalStorage.ts
@@ -25,13 +25,13 @@ 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),
diff --git a/packages/taler-wallet-webextension/src/hooks/useTalerActionURL.test.ts b/packages/taler-wallet-webextension/src/hooks/useTalerActionURL.test.ts
index 4893d43ff..7cf97265e 100644
--- a/packages/taler-wallet-webextension/src/hooks/useTalerActionURL.test.ts
+++ b/packages/taler-wallet-webextension/src/hooks/useTalerActionURL.test.ts
@@ -14,48 +14,47 @@
You should have received a copy of the GNU General Public License along with
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import { useTalerActionURL } from "./useTalerActionURL.js"
+import { useTalerActionURL } from "./useTalerActionURL.js";
import { mountHook } from "../test-utils.js";
import { IoCProviderForTesting } from "../context/iocContext.js";
import { h, VNode } from "preact";
import { expect } from "chai";
-describe('useTalerActionURL hook', () => {
-
- it('should be set url to undefined when dismiss', async () => {
-
+describe("useTalerActionURL hook", () => {
+ it("should be set url to undefined when dismiss", async () => {
const ctx = ({ children }: { children: any }): VNode => {
return h(IoCProviderForTesting, {
value: {
findTalerUriInActiveTab: async () => "asd",
- }, children
- })
- }
+ },
+ children,
+ });
+ };
- const { getLastResultOrThrow, waitNextUpdate, assertNoPendingUpdate } = mountHook(useTalerActionURL, ctx)
+ const { getLastResultOrThrow, waitNextUpdate, assertNoPendingUpdate } =
+ mountHook(useTalerActionURL, ctx);
{
- const [url] = getLastResultOrThrow()
+ const [url] = getLastResultOrThrow();
expect(url).undefined;
}
-
- await waitNextUpdate("waiting for useEffect")
+ await waitNextUpdate("waiting for useEffect");
{
- const [url, setDismissed] = getLastResultOrThrow()
+ const [url, setDismissed] = getLastResultOrThrow();
expect(url).equals("asd");
- setDismissed(true)
+ setDismissed(true);
}
- await waitNextUpdate("after dismiss")
+ await waitNextUpdate("after dismiss");
{
- const [url] = getLastResultOrThrow()
- if (url !== undefined) throw Error('invalid')
+ const [url] = getLastResultOrThrow();
+ if (url !== undefined) throw Error("invalid");
expect(url).undefined;
}
- await assertNoPendingUpdate()
- })
-}) \ No newline at end of file
+ await assertNoPendingUpdate();
+ });
+});
diff --git a/packages/taler-wallet-webextension/src/hooks/useTalerActionURL.ts b/packages/taler-wallet-webextension/src/hooks/useTalerActionURL.ts
index b2dd739e2..0a2ad4aa1 100644
--- a/packages/taler-wallet-webextension/src/hooks/useTalerActionURL.ts
+++ b/packages/taler-wallet-webextension/src/hooks/useTalerActionURL.ts
@@ -25,7 +25,7 @@ export function useTalerActionURL(): [
undefined,
);
const [dismissed, setDismissed] = useState(false);
- const { findTalerUriInActiveTab } = useIocContext()
+ const { findTalerUriInActiveTab } = useIocContext();
useEffect(() => {
async function check(): Promise<void> {