import { modifyPath, mergeDeepRight } from "ramda"; const STORAGE_KEY = "ecoplanet"; const defaultState = { dateCache: undefined, options: { lineWidth: undefined, defaultDate: undefined, }, }; const stringifyState = function (state) { return JSON.stringify(state); }; const parseState = function (jsonString) { const state = JSON.parse(jsonString); return modifyPath(["options", "defaultDate"], Date.parse, state); }; export const persistStorage = function (state) { localStorage.setItem(STORAGE_KEY, stringifyState(state)); }; export const loadStorage = function () { const storageStateString = localStorage.getItem(STORAGE_KEY); if (storageStateString) { return parseState(storageStateString); } }; export const loadStorageOrDefault = function (state) { return mergeDeepRight(loadStorage(), defaultState); };