summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-webextension/src/utils/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-webextension/src/utils/index.ts')
-rw-r--r--packages/taler-wallet-webextension/src/utils/index.ts9
1 files changed, 6 insertions, 3 deletions
diff --git a/packages/taler-wallet-webextension/src/utils/index.ts b/packages/taler-wallet-webextension/src/utils/index.ts
index ad4eabf15..d83e6f472 100644
--- a/packages/taler-wallet-webextension/src/utils/index.ts
+++ b/packages/taler-wallet-webextension/src/utils/index.ts
@@ -15,6 +15,7 @@
*/
import { createElement, VNode } from "preact";
+import { useCallback, useMemo } from "preact/hooks";
function getJsonIfOk(r: Response): Promise<any> {
if (r.ok) {
@@ -26,8 +27,7 @@ function getJsonIfOk(r: Response): Promise<any> {
}
throw new Error(
- `Try another server: (${r.status}) ${
- r.statusText || "internal server error"
+ `Try another server: (${r.status}) ${r.statusText || "internal server error"
}`,
);
}
@@ -89,6 +89,7 @@ export function compose<SType extends { status: string }, PType>(
): (p: PType) => VNode {
function withHook(stateHook: () => RecursiveState<SType>): () => VNode {
function TheComponent(): VNode {
+ //if the function is the same, do not compute
const state = stateHook();
if (typeof state === "function") {
@@ -102,7 +103,9 @@ export function compose<SType extends { status: string }, PType>(
}
// TheComponent.name = `${name}`;
- return TheComponent;
+ return useMemo(() => {
+ return TheComponent
+ }, [stateHook]);
}
return (p: PType) => {