Skip to content

Instantly share code, notes, and snippets.

@artemsites
Last active June 5, 2024 14:44
Show Gist options
  • Save artemsites/0aad4752baa175ce99c4490c44a37e0d to your computer and use it in GitHub Desktop.
Save artemsites/0aad4752baa175ce99c4490c44a37e0d to your computer and use it in GitHub Desktop.

Как расширять:

import LocalStorageManager from './LocalStorageManager.js'



class MenuConstructorLocalStorage extends LocalStorageManager {
  setLocalStorage(name, value) {
    if (name === "groupId") {
      this.removeLocalStorage("programId")
    }

    super.setLocalStorage(name, value)
  }
}

const menuConstructorLocalStorage = new MenuConstructorLocalStorage()

menuConstructorLocalStorage.setPrefix('menu-constructor-form-order_')

export default menuConstructorLocalStorage
// @ts-check
/**
* @version 20240605
*
* @export
* @class LocalStorageManager
*/
export default class LocalStorageManager {
constructor() {
this.prefix = ""
}
setPrefix(newPrefix) {
this.prefix = newPrefix
}
removeLocalStorage(name) {
localStorage.removeItem(this.prefix + name)
}
setLocalStorage(name, value) {
if (value !== null && value !== undefined) {
localStorage.setItem(this.prefix + name, JSON.stringify(value))
}
}
getLocalStorage(name) {
const data = localStorage.getItem(this.prefix + name)
if (data) {
try {
return JSON.parse(data)
} catch (e) {
return data
}
}
}
clearLocalStorage() {
Object.keys(localStorage).forEach(key => {
if (key.startsWith(this.prefix)) {
localStorage.removeItem(key)
}
})
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment