memory key should be string
This commit is contained in:
parent
c41d7e0437
commit
e3ec395b35
@ -49,10 +49,10 @@ interface OfficerReady {
|
||||
}
|
||||
|
||||
const OFFICER_KEY = buildStorageKey("officer", codecForOfficer());
|
||||
const ACCOUNT_KEY = buildStorageKey<Account>("account");
|
||||
const ACCOUNT_KEY = "account";
|
||||
|
||||
export function useOfficer(): OfficerState {
|
||||
const accountStorage = useMemoryStorage(ACCOUNT_KEY);
|
||||
const accountStorage = useMemoryStorage<Account>(ACCOUNT_KEY);
|
||||
const officerStorage = useLocalStorage(OFFICER_KEY);
|
||||
|
||||
const officer = officerStorage.value;
|
||||
|
@ -27,37 +27,37 @@ const storage: ObservableMap<string, any> = memoryMap<any>();
|
||||
|
||||
//with initial value
|
||||
export function useMemoryStorage<Type = string>(
|
||||
key: StorageKey<Type>,
|
||||
key: string,
|
||||
defaultValue: Type,
|
||||
): Required<StorageState<Type>>;
|
||||
//with initial value
|
||||
export function useMemoryStorage<Type = string>(
|
||||
key: StorageKey<Type>,
|
||||
key: string,
|
||||
): StorageState<Type>;
|
||||
// impl
|
||||
export function useMemoryStorage<Type = string>(
|
||||
key: StorageKey<Type>,
|
||||
key: string,
|
||||
defaultValue?: Type,
|
||||
): StorageState<Type> {
|
||||
const [storedValue, setStoredValue] = useState<Type | undefined>(
|
||||
(): Type | undefined => {
|
||||
const prev = storage.get(key.id);
|
||||
return prev;
|
||||
const prev = storage.get(key);
|
||||
return prev === undefined ? defaultValue : prev;
|
||||
},
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
return storage.onUpdate(key.id, () => {
|
||||
const newValue = storage.get(key.id);
|
||||
setStoredValue(newValue);
|
||||
return storage.onUpdate(key, () => {
|
||||
const newValue = storage.get(key);
|
||||
setStoredValue(newValue === undefined ? defaultValue : newValue);
|
||||
});
|
||||
}, []);
|
||||
|
||||
const setValue = (value?: Type): void => {
|
||||
if (value === undefined) {
|
||||
storage.delete(key.id);
|
||||
storage.delete(key);
|
||||
} else {
|
||||
storage.set(key.id, value);
|
||||
storage.set(key, value);
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user