aboutsummaryrefslogtreecommitdiff
path: root/packages/web-util/src/hooks
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2023-04-18 10:46:27 -0300
committerSebastian <sebasjm@gmail.com>2023-04-18 10:46:27 -0300
commitb1a0d034fc1be0824e1eac46661604558264beee (patch)
treea3786aa0926e41cd43229bd93a4176646d0c59c1 /packages/web-util/src/hooks
parent6833b2bd7513f9d1a98fa5d05be3011cae23a993 (diff)
downloadwallet-core-b1a0d034fc1be0824e1eac46661604558264beee.tar.xz
sync with chrome storage
Diffstat (limited to 'packages/web-util/src/hooks')
-rw-r--r--packages/web-util/src/hooks/useLocalStorage.ts19
1 files changed, 17 insertions, 2 deletions
diff --git a/packages/web-util/src/hooks/useLocalStorage.ts b/packages/web-util/src/hooks/useLocalStorage.ts
index dd6c5def8..495c9b0f8 100644
--- a/packages/web-util/src/hooks/useLocalStorage.ts
+++ b/packages/web-util/src/hooks/useLocalStorage.ts
@@ -20,7 +20,12 @@
*/
import { useEffect, useState } from "preact/hooks";
-import { localStorageMap, memoryMap } from "../utils/observable.js";
+import {
+ ObservableMap,
+ browserStorageMap,
+ localStorageMap,
+ memoryMap,
+} from "../utils/observable.js";
export interface LocalStorageState {
value?: string;
@@ -29,8 +34,18 @@ export interface LocalStorageState {
}
const supportLocalStorage = typeof window !== "undefined";
+const supportBrowserStorage =
+ typeof chrome !== "undefined" && typeof chrome.storage !== "undefined";
-const storage = supportLocalStorage ? localStorageMap() : memoryMap<string>();
+const storage: ObservableMap<string, string> = (function buildStorage() {
+ if (supportBrowserStorage) {
+ return browserStorageMap(memoryMap<string>());
+ } else if (supportLocalStorage) {
+ return localStorageMap();
+ } else {
+ return memoryMap<string>();
+ }
+})();
export function useLocalStorage(
key: string,