UNPKG

react-toolbox

Version:
48 lines (36 loc) 1.14 kB
/*eslint-disable no-empty */ 'use strict'; exports.__esModule = true; exports.saveState = saveState; exports.readState = readState; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _warning = require('warning'); var _warning2 = _interopRequireDefault(_warning); var KeyPrefix = '@@History/'; var QuotaExceededError = 'QuotaExceededError'; function createKey(key) { return KeyPrefix + key; } function saveState(key, state) { try { window.sessionStorage.setItem(createKey(key), JSON.stringify(state)); } catch (error) { if (error.name === QuotaExceededError || window.sessionStorage.length === 0) { // Probably in Safari "private mode" where sessionStorage quota is 0. #42 _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available in Safari private mode'); return; } throw error; } } function readState(key) { var json = window.sessionStorage.getItem(createKey(key)); if (json) { try { return JSON.parse(json); } catch (error) { // Ignore invalid JSON. } } return null; }