memory key should be string

This commit is contained in:
Sebastian 2023-06-02 14:11:57 -03:00
parent c41d7e0437
commit e3ec395b35
No known key found for this signature in database
GPG Key ID: 173909D1A5F66069
2 changed files with 12 additions and 12 deletions

View File

@ -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;

View File

@ -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);
}
};