[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-merchant-backoffice] 01/02: finish addressing state persistence
From: |
gnunet |
Subject: |
[taler-merchant-backoffice] 01/02: finish addressing state persistence |
Date: |
Mon, 10 Jan 2022 19:29:59 +0100 |
This is an automated email from the git hooks/post-receive script.
ms pushed a commit to branch master
in repository merchant-backoffice.
commit 5ef91927720395a88fcaaadbc6b364bebb768c09
Author: ms <ms@taler.net>
AuthorDate: Sat Jan 8 20:10:12 2022 +0100
finish addressing state persistence
---
packages/bank/src/pages/home/index.tsx | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/packages/bank/src/pages/home/index.tsx
b/packages/bank/src/pages/home/index.tsx
index 50c8c1d..61cf781 100644
--- a/packages/bank/src/pages/home/index.tsx
+++ b/packages/bank/src/pages/home/index.tsx
@@ -4,7 +4,7 @@ import { useState, useEffect, StateUpdater } from
"preact/hooks";
import { Buffer } from "buffer";
import { useTranslator, Translate } from "../../i18n";
import { QR } from "../../components/QR";
-import { useNotNullLocalStorage } from "../../hooks";
+import { useNotNullLocalStorage, useLocalStorage } from "../../hooks";
/**********************************************
* Type definitions for states and API calls. *
@@ -92,8 +92,14 @@ type BackendStateTypeOpt = BackendStateType | undefined;
function useBackendState(
state?: BackendStateType
): [BackendStateTypeOpt, StateUpdater<BackendStateTypeOpt>] {
- if (state) return useState<BackendStateTypeOpt>(state);
- return useState<BackendStateTypeOpt>();
+
+ const ret = useLocalStorage("backend-state", JSON.stringify(state));
+ const retObj: BackendStateTypeOpt = ret[0] ? JSON.parse(ret[0]) : ret[0];
+ const retSetter: StateUpdater<BackendStateTypeOpt> = function(val) {
+ const newVal = val instanceof Function ? JSON.stringify(val(retObj)) :
JSON.stringify(val)
+ ret[1](newVal)
+ }
+ return [retObj, retSetter]
}
/**
@@ -104,10 +110,15 @@ type AccountStateTypeOpt = AccountStateType | undefined;
function useAccountState(
state?: AccountStateType
): [AccountStateTypeOpt, StateUpdater<AccountStateTypeOpt>] {
- if (state) return useState<AccountStateTypeOpt>(state);
- return useState<AccountStateTypeOpt>();
-}
+ const ret = useLocalStorage("account-state", JSON.stringify(state));
+ const retObj: AccountStateTypeOpt = ret[0] ? JSON.parse(ret[0]) : ret[0];
+ const retSetter: StateUpdater<AccountStateTypeOpt> = function(val) {
+ const newVal = val instanceof Function ? JSON.stringify(val(retObj)) :
JSON.stringify(val)
+ ret[1](newVal)
+ }
+ return [retObj, retSetter]
+}
/**
* Wrapper providing defaults.
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.