123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- var _excluded = ["_highlightResult", "_snippetResult"];
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
- function isLocalStorageSupported() {
- var key = '__TEST_KEY__';
- try {
- localStorage.setItem(key, '');
- localStorage.removeItem(key);
- return true;
- } catch (error) {
- return false;
- }
- }
- function createStorage(key) {
- if (isLocalStorageSupported() === false) {
- return {
- setItem: function setItem() {},
- getItem: function getItem() {
- return [];
- }
- };
- }
- return {
- setItem: function setItem(item) {
- return window.localStorage.setItem(key, JSON.stringify(item));
- },
- getItem: function getItem() {
- var item = window.localStorage.getItem(key);
- return item ? JSON.parse(item) : [];
- }
- };
- }
- export function createStoredSearches(_ref) {
- var key = _ref.key,
- _ref$limit = _ref.limit,
- limit = _ref$limit === void 0 ? 5 : _ref$limit;
- var storage = createStorage(key);
- var items = storage.getItem().slice(0, limit);
- return {
- add: function add(item) {
- var _ref2 = item,
- _highlightResult = _ref2._highlightResult,
- _snippetResult = _ref2._snippetResult,
- hit = _objectWithoutProperties(_ref2, _excluded);
- var isQueryAlreadySaved = items.findIndex(function (x) {
- return x.objectID === hit.objectID;
- });
- if (isQueryAlreadySaved > -1) {
- items.splice(isQueryAlreadySaved, 1);
- }
- items.unshift(hit);
- items = items.slice(0, limit);
- storage.setItem(items);
- },
- remove: function remove(item) {
- items = items.filter(function (x) {
- return x.objectID !== item.objectID;
- });
- storage.setItem(items);
- },
- getAll: function getAll() {
- return items;
- }
- };
- }
|