diff --git a/frontend/src/utils/show-hide/show-hide.js b/frontend/src/utils/show-hide/show-hide.js index 0780a465d..c264f3af3 100644 --- a/frontend/src/utils/show-hide/show-hide.js +++ b/frontend/src/utils/show-hide/show-hide.js @@ -1,4 +1,5 @@ import { Utility } from '../../core/utility'; +import { StorageManager, LOCATION } from '../../lib/storage-manager/storage-manager'; import './show-hide.scss'; const SHOW_HIDE_LOCAL_STORAGE_KEY = 'SHOW_HIDE'; @@ -15,6 +16,8 @@ export class ShowHide { _showHideId; _element; + _storageManager = new StorageManager(SHOW_HIDE_LOCAL_STORAGE_KEY, { location: LOCATION.LOCAL }); + constructor(element) { if (!element) { throw new Error('ShowHide utility cannot be setup without an element!'); @@ -41,9 +44,9 @@ export class ShowHide { } if (this._showHideId) { - let localStorageCollapsed = this._getLocalStorage()[this._showHideId]; - if (typeof localStorageCollapsed !== 'undefined') { - collapsed = localStorageCollapsed; + let storageCollapsed = this._storageManager.load(this._showHideId); + if (typeof storageCollapsed !== 'undefined') { + collapsed = storageCollapsed; } } this._element.parentElement.classList.toggle(SHOW_HIDE_COLLAPSED_CLASS, collapsed); @@ -70,18 +73,7 @@ export class ShowHide { const newState = this._element.parentElement.classList.toggle(SHOW_HIDE_COLLAPSED_CLASS); if (this._showHideId) { - this._setLocalStorage(this._showHideId, newState); + this._storageManager.save(this._showHideId, newState); } } - - // maybe move these to a LocalStorageHelper? - _setLocalStorage(id, state) { - const lsData = this._getLocalStorage(); - lsData[id] = state; - window.localStorage.setItem(SHOW_HIDE_LOCAL_STORAGE_KEY, JSON.stringify(lsData)); - } - - _getLocalStorage() { - return JSON.parse(window.localStorage.getItem(SHOW_HIDE_LOCAL_STORAGE_KEY)) || {}; - } }