const saveStorage = (key, data, name) => { if (name) { const hash = window.location.hash const values = hash.split('?') const componant = values[0] const query = values[1] ?? '' const search = new URLSearchParams(query) const params = {} for (const sKey of search.keys()) { if (name === 'filters' && sKey.includes('__')) { continue } params[sKey] = search.get(sKey) } if (name === 'filters') { for (const filter of data) { params[`${filter.key}__${filter.comparator}`] = filter.value } } else { params[name] = data } history.pushState({}, '', `/${componant}?${new URLSearchParams(params)}`) } localStorage.setItem(key, JSON.stringify(data)) } const getStorage = (key, defaultValue) => { try { const value = JSON.parse(localStorage.getItem(key)) return value === null ? defaultValue : value } catch { return defaultValue } } const removeStorage = function (key) { localStorage.removeItem(key) } export { getStorage, saveStorage, removeStorage }