@searchspring/snap-controller 0.30.0 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7I,OAAO,KAAK,EAAE,kBAAkB,EAAgD,MAAM,2BAA2B,CAAC;AAoBlH,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;gBAGrB,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAkF3B,KAAK,EAAE,kBAAkB,CA0BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAsC/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA0J9B;CACF"}
1
+ {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7I,OAAO,KAAK,EAAE,kBAAkB,EAA2E,MAAM,2BAA2B,CAAC;AAoB7I,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;gBAGrB,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAmG3B,KAAK,EAAE,kBAAkB,CAoCvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAsC/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA0J9B;CACF"}
@@ -100,23 +100,33 @@ var SearchController = /** @class */ (function (_super) {
100
100
  __extends(SearchController, _super);
101
101
  function SearchController(config, _a, context) {
102
102
  var client = _a.client, store = _a.store, urlManager = _a.urlManager, eventManager = _a.eventManager, profiler = _a.profiler, logger = _a.logger, tracker = _a.tracker;
103
- var _this = _super.call(this, config, { client: client, store: store, urlManager: urlManager, eventManager: eventManager, profiler: profiler, logger: logger, tracker: tracker }, context) || this;
103
+ var _this = this;
104
+ var _b, _c, _d;
105
+ _this = _super.call(this, config, { client: client, store: store, urlManager: urlManager, eventManager: eventManager, profiler: profiler, logger: logger, tracker: tracker }, context) || this;
104
106
  _this.type = types_1.ControllerTypes.search;
105
107
  _this.track = {
106
108
  product: {
107
109
  click: function (e, result) {
108
- var _a, _b;
110
+ var _a, _b, _c, _d;
109
111
  // store scroll position
110
112
  if ((_a = _this.config.settings) === null || _a === void 0 ? void 0 : _a.infinite) {
111
113
  var stringyParams = _this.storage.get('lastStringyParams');
114
+ var paramsObj = JSON.parse(stringyParams);
115
+ if ((_b = paramsObj === null || paramsObj === void 0 ? void 0 : paramsObj.search) === null || _b === void 0 ? void 0 : _b.redirectResponse) {
116
+ (_c = paramsObj === null || paramsObj === void 0 ? void 0 : paramsObj.search) === null || _c === void 0 ? true : delete _c.redirectResponse;
117
+ }
118
+ if (paramsObj === null || paramsObj === void 0 ? void 0 : paramsObj.personalization) {
119
+ paramsObj === null || paramsObj === void 0 ? true : delete paramsObj.personalization;
120
+ }
121
+ stringyParams = JSON.stringify(paramsObj);
112
122
  var scrollMap = {};
113
123
  scrollMap[stringyParams] = window.scrollY;
114
124
  _this.storage.set('scrollMap', scrollMap);
115
125
  }
116
126
  // track
117
- var _c = result.attributes, intellisuggestData = _c.intellisuggestData, intellisuggestSignature = _c.intellisuggestSignature;
127
+ var _e = result.attributes, intellisuggestData = _e.intellisuggestData, intellisuggestSignature = _e.intellisuggestSignature;
118
128
  var target = e.target;
119
- var href = (target === null || target === void 0 ? void 0 : target.href) || ((_b = result.mappings.core) === null || _b === void 0 ? void 0 : _b.url) || undefined;
129
+ var href = (target === null || target === void 0 ? void 0 : target.href) || ((_d = result.mappings.core) === null || _d === void 0 ? void 0 : _d.url) || undefined;
120
130
  var event = _this.tracker.track.product.click({
121
131
  intellisuggestData: intellisuggestData,
122
132
  intellisuggestSignature: intellisuggestSignature,
@@ -129,32 +139,32 @@ var SearchController = /** @class */ (function (_super) {
129
139
  };
130
140
  _this.search = function () { return __awaiter(_this, void 0, void 0, function () {
131
141
  var params, err_1, stringyParams, prevStringyParams, preventBackfill, dontBackfill, searchProfile, _a, meta, response, previousResults_1, backfills, page, backfillParams, backfillResponses, afterSearchProfile, err_2, afterStoreProfile, err_3, err_4;
132
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
133
- return __generator(this, function (_m) {
134
- switch (_m.label) {
142
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k;
143
+ return __generator(this, function (_l) {
144
+ switch (_l.label) {
135
145
  case 0:
136
146
  if (!!this.initialized) return [3 /*break*/, 2];
137
147
  return [4 /*yield*/, this.init()];
138
148
  case 1:
139
- _m.sent();
140
- _m.label = 2;
149
+ _l.sent();
150
+ _l.label = 2;
141
151
  case 2:
142
152
  params = this.params;
143
- _m.label = 3;
153
+ _l.label = 3;
144
154
  case 3:
145
- _m.trys.push([3, 20, , 21]);
146
- _m.label = 4;
155
+ _l.trys.push([3, 20, , 21]);
156
+ _l.label = 4;
147
157
  case 4:
148
- _m.trys.push([4, 6, , 7]);
158
+ _l.trys.push([4, 6, , 7]);
149
159
  return [4 /*yield*/, this.eventManager.fire('beforeSearch', {
150
160
  controller: this,
151
161
  request: params,
152
162
  })];
153
163
  case 5:
154
- _m.sent();
164
+ _l.sent();
155
165
  return [3 /*break*/, 7];
156
166
  case 6:
157
- err_1 = _m.sent();
167
+ err_1 = _l.sent();
158
168
  if ((err_1 === null || err_1 === void 0 ? void 0 : err_1.message) == 'cancelled') {
159
169
  this.log.warn("'beforeSearch' middleware cancelled");
160
170
  return [2 /*return*/];
@@ -183,7 +193,7 @@ var SearchController = /** @class */ (function (_super) {
183
193
  searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
184
194
  return [4 /*yield*/, this.client.search(params)];
185
195
  case 8:
186
- _a = _m.sent(), meta = _a[0], response = _a[1];
196
+ _a = _l.sent(), meta = _a[0], response = _a[1];
187
197
  // @ts-ignore
188
198
  if (!response.meta) {
189
199
  /**
@@ -194,41 +204,41 @@ var SearchController = /** @class */ (function (_super) {
194
204
  response.meta = meta;
195
205
  }
196
206
  if (!(((_g = this.config.settings) === null || _g === void 0 ? void 0 : _g.infinite) && ((_h = params.pagination) === null || _h === void 0 ? void 0 : _h.page) > 1)) return [3 /*break*/, 11];
197
- previousResults_1 = ((_j = this.store.data) === null || _j === void 0 ? void 0 : _j.results) || [];
198
- if (!(((_k = this.config.settings) === null || _k === void 0 ? void 0 : _k.infinite.backfill) && !previousResults_1.length)) return [3 /*break*/, 10];
207
+ previousResults_1 = JSON.parse(JSON.stringify(this.store.results)) || [];
208
+ if (!(((_j = this.config.settings) === null || _j === void 0 ? void 0 : _j.infinite.backfill) && !previousResults_1.length)) return [3 /*break*/, 10];
199
209
  backfills = [];
200
- for (page = 1; page < ((_l = params.pagination) === null || _l === void 0 ? void 0 : _l.page); page++) {
210
+ for (page = 1; page < ((_k = params.pagination) === null || _k === void 0 ? void 0 : _k.page); page++) {
201
211
  backfillParams = (0, deepmerge_1.default)(__assign({}, params), { pagination: { page: page } });
202
212
  backfills.push(this.client.search(backfillParams));
203
213
  }
204
214
  return [4 /*yield*/, Promise.all(backfills)];
205
215
  case 9:
206
- backfillResponses = _m.sent();
216
+ backfillResponses = _l.sent();
207
217
  backfillResponses.map(function (_a) {
208
218
  var meta = _a[0], data = _a[1];
209
219
  previousResults_1 = previousResults_1.concat(data.results);
210
220
  });
211
- _m.label = 10;
221
+ _l.label = 10;
212
222
  case 10:
213
223
  response.results = __spreadArray(__spreadArray([], previousResults_1, true), (response.results || []), true);
214
- _m.label = 11;
224
+ _l.label = 11;
215
225
  case 11:
216
226
  searchProfile.stop();
217
227
  this.log.profile(searchProfile);
218
228
  afterSearchProfile = this.profiler.create({ type: 'event', name: 'afterSearch', context: params }).start();
219
- _m.label = 12;
229
+ _l.label = 12;
220
230
  case 12:
221
- _m.trys.push([12, 14, , 15]);
231
+ _l.trys.push([12, 14, , 15]);
222
232
  return [4 /*yield*/, this.eventManager.fire('afterSearch', {
223
233
  controller: this,
224
234
  request: params,
225
235
  response: response,
226
236
  })];
227
237
  case 13:
228
- _m.sent();
238
+ _l.sent();
229
239
  return [3 /*break*/, 15];
230
240
  case 14:
231
- err_2 = _m.sent();
241
+ err_2 = _l.sent();
232
242
  if ((err_2 === null || err_2 === void 0 ? void 0 : err_2.message) == 'cancelled') {
233
243
  this.log.warn("'afterSearch' middleware cancelled");
234
244
  afterSearchProfile.stop();
@@ -246,19 +256,19 @@ var SearchController = /** @class */ (function (_super) {
246
256
  // @ts-ignore
247
257
  this.store.update(response);
248
258
  afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
249
- _m.label = 16;
259
+ _l.label = 16;
250
260
  case 16:
251
- _m.trys.push([16, 18, , 19]);
261
+ _l.trys.push([16, 18, , 19]);
252
262
  return [4 /*yield*/, this.eventManager.fire('afterStore', {
253
263
  controller: this,
254
264
  request: params,
255
265
  response: response,
256
266
  })];
257
267
  case 17:
258
- _m.sent();
268
+ _l.sent();
259
269
  return [3 /*break*/, 19];
260
270
  case 18:
261
- err_3 = _m.sent();
271
+ err_3 = _l.sent();
262
272
  if ((err_3 === null || err_3 === void 0 ? void 0 : err_3.message) == 'cancelled') {
263
273
  this.log.warn("'afterStore' middleware cancelled");
264
274
  afterStoreProfile.stop();
@@ -274,7 +284,7 @@ var SearchController = /** @class */ (function (_super) {
274
284
  this.log.profile(afterStoreProfile);
275
285
  return [3 /*break*/, 21];
276
286
  case 20:
277
- err_4 = _m.sent();
287
+ err_4 = _l.sent();
278
288
  if (err_4) {
279
289
  switch (err_4) {
280
290
  case 429:
@@ -306,6 +316,12 @@ var SearchController = /** @class */ (function (_super) {
306
316
  }); };
307
317
  // deep merge config with defaults
308
318
  _this.config = (0, deepmerge_1.default)(defaultConfig, _this.config);
319
+ if (((_b = _this.config.settings) === null || _b === void 0 ? void 0 : _b.infinite) && typeof _this.config.settings.infinite.restorePosition == 'undefined') {
320
+ _this.config.settings.infinite.restorePosition = true;
321
+ }
322
+ if ((window === null || window === void 0 ? void 0 : window.history) && ((_d = (_c = _this.config.settings) === null || _c === void 0 ? void 0 : _c.infinite) === null || _d === void 0 ? void 0 : _d.restorePosition)) {
323
+ window.history.scrollRestoration = 'manual';
324
+ }
309
325
  _this.store.setConfig(_this.config);
310
326
  _this.storage = new snap_store_mobx_1.StorageStore({
311
327
  type: snap_store_mobx_1.StorageType.SESSION,
@@ -355,18 +371,26 @@ var SearchController = /** @class */ (function (_super) {
355
371
  });
356
372
  }); });
357
373
  _this.eventManager.on('afterStore', function (search, next) { return __awaiter(_this, void 0, void 0, function () {
358
- var stringyParams, scrollMap_1, scrollToPosition_1, checkCount_1, heightCheck_1;
374
+ var requestParams, stringyParams, scrollMap_1, scrollToPosition_1, checkCount_1, heightCheck_1;
359
375
  var _this = this;
360
- var _a;
361
- return __generator(this, function (_b) {
362
- switch (_b.label) {
376
+ var _a, _b, _c;
377
+ return __generator(this, function (_d) {
378
+ switch (_d.label) {
363
379
  case 0: return [4 /*yield*/, next()];
364
380
  case 1:
365
- _b.sent();
381
+ _d.sent();
366
382
  search.controller.store.loading = false;
367
- stringyParams = JSON.stringify(search.request);
368
- this.storage.set('lastStringyParams', stringyParams);
369
- if (((_a = this.config.settings) === null || _a === void 0 ? void 0 : _a.infinite) && window.scrollY === 0) {
383
+ // save last params
384
+ this.storage.set('lastStringyParams', JSON.stringify(search.request));
385
+ requestParams = __assign({}, search.request);
386
+ if (requestParams.personalization) {
387
+ delete requestParams.personalization;
388
+ }
389
+ if ((_a = requestParams === null || requestParams === void 0 ? void 0 : requestParams.search) === null || _a === void 0 ? void 0 : _a.redirectResponse) {
390
+ delete requestParams.search.redirectResponse;
391
+ }
392
+ stringyParams = JSON.stringify(requestParams);
393
+ if ((_c = (_b = this.config.settings) === null || _b === void 0 ? void 0 : _b.infinite) === null || _c === void 0 ? void 0 : _c.restorePosition) {
370
394
  scrollMap_1 = this.storage.get('scrollMap') || {};
371
395
  scrollToPosition_1 = scrollMap_1[stringyParams];
372
396
  if (scrollToPosition_1) {
@@ -1 +1 @@
1
- {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7I,OAAO,KAAK,EAAE,kBAAkB,EAAgD,MAAM,2BAA2B,CAAC;AAoBlH,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;gBAGrB,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAkF3B,KAAK,EAAE,kBAAkB,CA0BvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAsC/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA0J9B;CACF"}
1
+ {"version":3,"file":"SearchController.d.ts","sourceRoot":"","sources":["../../../src/Search/SearchController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,+BAA+B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAkD,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE7I,OAAO,KAAK,EAAE,kBAAkB,EAA2E,MAAM,2BAA2B,CAAC;AAoB7I,aAAK,kBAAkB,GAAG;IACzB,OAAO,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,WAAW,GAAG,SAAS,CAAC;KAC/D,CAAC;CACF,CAAC;AAEF,qBAAa,gBAAiB,SAAQ,kBAAkB;IAChD,IAAI,kBAA0B;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,sBAAsB,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC;gBAGrB,MAAM,EAAE,sBAAsB,EAC9B,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAC1F,OAAO,CAAC,EAAE,gBAAgB;IAmG3B,KAAK,EAAE,kBAAkB,CAoCvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAsC/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA0J9B;CACF"}
@@ -28,7 +28,15 @@ export class SearchController extends AbstractController {
28
28
  click: (e, result) => {
29
29
  // store scroll position
30
30
  if (this.config.settings?.infinite) {
31
- const stringyParams = this.storage.get('lastStringyParams');
31
+ let stringyParams = this.storage.get('lastStringyParams');
32
+ const paramsObj = JSON.parse(stringyParams);
33
+ if (paramsObj?.search?.redirectResponse) {
34
+ delete paramsObj?.search?.redirectResponse;
35
+ }
36
+ if (paramsObj?.personalization) {
37
+ delete paramsObj?.personalization;
38
+ }
39
+ stringyParams = JSON.stringify(paramsObj);
32
40
  const scrollMap = {};
33
41
  scrollMap[stringyParams] = window.scrollY;
34
42
  this.storage.set('scrollMap', scrollMap);
@@ -100,7 +108,7 @@ export class SearchController extends AbstractController {
100
108
  // if params.page > 1 and infinite setting exists we should append results
101
109
  if (this.config.settings?.infinite && params.pagination?.page > 1) {
102
110
  // if no results fetch results...
103
- let previousResults = this.store.data?.results || [];
111
+ let previousResults = JSON.parse(JSON.stringify(this.store.results)) || [];
104
112
  if (this.config.settings?.infinite.backfill && !previousResults.length) {
105
113
  // figure out how many pages of results to backfill and wait on all responses
106
114
  const backfills = [];
@@ -192,6 +200,12 @@ export class SearchController extends AbstractController {
192
200
  };
193
201
  // deep merge config with defaults
194
202
  this.config = deepmerge(defaultConfig, this.config);
203
+ if (this.config.settings?.infinite && typeof this.config.settings.infinite.restorePosition == 'undefined') {
204
+ this.config.settings.infinite.restorePosition = true;
205
+ }
206
+ if (window?.history && this.config.settings?.infinite?.restorePosition) {
207
+ window.history.scrollRestoration = 'manual';
208
+ }
195
209
  this.store.setConfig(this.config);
196
210
  this.storage = new StorageStore({
197
211
  type: StorageType.SESSION,
@@ -226,10 +240,17 @@ export class SearchController extends AbstractController {
226
240
  await next();
227
241
  search.controller.store.loading = false;
228
242
  // save last params
229
- const stringyParams = JSON.stringify(search.request);
230
- this.storage.set('lastStringyParams', stringyParams);
231
- if (this.config.settings?.infinite && window.scrollY === 0) {
232
- // browser didn't jump
243
+ this.storage.set('lastStringyParams', JSON.stringify(search.request));
244
+ const requestParams = { ...search.request };
245
+ if (requestParams.personalization) {
246
+ delete requestParams.personalization;
247
+ }
248
+ if (requestParams?.search?.redirectResponse) {
249
+ delete requestParams.search.redirectResponse;
250
+ }
251
+ const stringyParams = JSON.stringify(requestParams);
252
+ if (this.config.settings?.infinite?.restorePosition) {
253
+ // restore the scroll position saved previously
233
254
  const scrollMap = this.storage.get('scrollMap') || {};
234
255
  // interval we ony need to keep checking until the page height > than our stored value
235
256
  const scrollToPosition = scrollMap[stringyParams];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-controller",
3
- "version": "0.30.0",
3
+ "version": "0.31.0",
4
4
  "description": "Snap Controllers",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -20,21 +20,21 @@
20
20
  "test:watch": "jest --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@searchspring/snap-toolbox": "^0.30.0",
23
+ "@searchspring/snap-toolbox": "^0.31.0",
24
24
  "deepmerge": "4.2.2"
25
25
  },
26
26
  "devDependencies": {
27
- "@searchspring/snap-client": "^0.30.0",
28
- "@searchspring/snap-event-manager": "^0.30.0",
29
- "@searchspring/snap-logger": "^0.30.0",
30
- "@searchspring/snap-profiler": "^0.30.0",
31
- "@searchspring/snap-store-mobx": "^0.30.0",
32
- "@searchspring/snap-tracker": "^0.30.0",
33
- "@searchspring/snap-url-manager": "^0.30.0"
27
+ "@searchspring/snap-client": "^0.31.0",
28
+ "@searchspring/snap-event-manager": "^0.31.0",
29
+ "@searchspring/snap-logger": "^0.31.0",
30
+ "@searchspring/snap-profiler": "^0.31.0",
31
+ "@searchspring/snap-store-mobx": "^0.31.0",
32
+ "@searchspring/snap-tracker": "^0.31.0",
33
+ "@searchspring/snap-url-manager": "^0.31.0"
34
34
  },
35
35
  "sideEffects": false,
36
36
  "files": [
37
37
  "dist/**/*"
38
38
  ],
39
- "gitHead": "48ab43e7ecb42f7b0e1da15b85fe02cc929918f6"
39
+ "gitHead": "b09e1f5eb179f8ef167d264fab4dc5234ac9f83b"
40
40
  }