feat(web): extract ui-services package
This commit is contained in:
26
packages/ui-services/src/Storage/LocalStorage.ts
Normal file
26
packages/ui-services/src/Storage/LocalStorage.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
export enum StorageKey {
|
||||
AnonymousUserId = 'AnonymousUserId',
|
||||
ShowBetaWarning = 'ShowBetaWarning',
|
||||
ShowNoAccountWarning = 'ShowNoAccountWarning',
|
||||
FilesNavigationEnabled = 'FilesNavigationEnabled',
|
||||
}
|
||||
|
||||
export type StorageValue = {
|
||||
[StorageKey.AnonymousUserId]: string
|
||||
[StorageKey.ShowBetaWarning]: boolean
|
||||
[StorageKey.ShowNoAccountWarning]: boolean
|
||||
[StorageKey.FilesNavigationEnabled]: boolean
|
||||
}
|
||||
|
||||
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)
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user