Files
standardnotes-app-web/packages/ui-services/src/Storage/LocalStorage.ts
2022-11-03 00:11:17 +05:30

31 lines
985 B
TypeScript

import { PersistedStateValue } from '../StatePersistence/StatePersistence'
export enum StorageKey {
AnonymousUserId = 'AnonymousUserId',
ShowBetaWarning = 'ShowBetaWarning',
ShowNoAccountWarning = 'ShowNoAccountWarning',
FilesNavigationEnabled = 'FilesNavigationEnabled',
MasterStatePersistenceKey = 'master-persistence-key',
}
export type StorageValue = {
[StorageKey.AnonymousUserId]: string
[StorageKey.ShowBetaWarning]: boolean
[StorageKey.ShowNoAccountWarning]: boolean
[StorageKey.FilesNavigationEnabled]: boolean
[StorageKey.MasterStatePersistenceKey]: PersistedStateValue
}
export const storage = {
get<K extends StorageKey>(key: K): StorageValue[K] | null {
const value = localStorage.getItem(key)
return value ? JSON.parse(value) : null
},
set<K extends StorageKey>(key: K, value: StorageValue[K]): void {
localStorage.setItem(key, JSON.stringify(value))
},
remove(key: StorageKey): void {
localStorage.removeItem(key)
},
}