interface IData { startTime: number; value: string; time: number; } export const setValueToLocalStorage = (key: string , value: string, time: number = 1 * 60 * 60 * 1000) => { const data = { startTime: (new Date()).getTime(), value, time, } as IData; localStorage.setItem(key, JSON.stringify(data)); }; export const getValueFromLocalStorage = (key: string) => { let result = null; const data = localStorage.getItem(key); if (data) { try { result = JSON.parse(data); const { startTime, value, time } = result; const isTimeout = (new Date()).getTime() - startTime >= time; if (isTimeout) { deleteValueFromLocalStorage(key); } result = isTimeout ? null : value; } catch (err) { // do nothing } } return result; }; export const deleteValueFromLocalStorage = (key: string) => { localStorage.removeItem(key); };