@searchspring/snap-controller 0.30.1 → 0.32.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,
|
|
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,CAwCvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAsC/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA0J9B;CACF"}
|
|
@@ -100,23 +100,37 @@ 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 =
|
|
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
|
+
if ((paramsObj === null || paramsObj === void 0 ? void 0 : paramsObj.search) && Object.keys(paramsObj === null || paramsObj === void 0 ? void 0 : paramsObj.search).length === 0) {
|
|
118
|
+
// if redirectResponse was the only key, also delete the empty search object
|
|
119
|
+
delete paramsObj.search;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (paramsObj === null || paramsObj === void 0 ? void 0 : paramsObj.personalization) {
|
|
123
|
+
paramsObj === null || paramsObj === void 0 ? true : delete paramsObj.personalization;
|
|
124
|
+
}
|
|
125
|
+
stringyParams = JSON.stringify(paramsObj);
|
|
112
126
|
var scrollMap = {};
|
|
113
127
|
scrollMap[stringyParams] = window.scrollY;
|
|
114
128
|
_this.storage.set('scrollMap', scrollMap);
|
|
115
129
|
}
|
|
116
130
|
// track
|
|
117
|
-
var
|
|
131
|
+
var _e = result.attributes, intellisuggestData = _e.intellisuggestData, intellisuggestSignature = _e.intellisuggestSignature;
|
|
118
132
|
var target = e.target;
|
|
119
|
-
var href = (target === null || target === void 0 ? void 0 : target.href) || ((
|
|
133
|
+
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
134
|
var event = _this.tracker.track.product.click({
|
|
121
135
|
intellisuggestData: intellisuggestData,
|
|
122
136
|
intellisuggestSignature: intellisuggestSignature,
|
|
@@ -129,32 +143,32 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
129
143
|
};
|
|
130
144
|
_this.search = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
131
145
|
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
|
|
133
|
-
return __generator(this, function (
|
|
134
|
-
switch (
|
|
146
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
147
|
+
return __generator(this, function (_l) {
|
|
148
|
+
switch (_l.label) {
|
|
135
149
|
case 0:
|
|
136
150
|
if (!!this.initialized) return [3 /*break*/, 2];
|
|
137
151
|
return [4 /*yield*/, this.init()];
|
|
138
152
|
case 1:
|
|
139
|
-
|
|
140
|
-
|
|
153
|
+
_l.sent();
|
|
154
|
+
_l.label = 2;
|
|
141
155
|
case 2:
|
|
142
156
|
params = this.params;
|
|
143
|
-
|
|
157
|
+
_l.label = 3;
|
|
144
158
|
case 3:
|
|
145
|
-
|
|
146
|
-
|
|
159
|
+
_l.trys.push([3, 20, , 21]);
|
|
160
|
+
_l.label = 4;
|
|
147
161
|
case 4:
|
|
148
|
-
|
|
162
|
+
_l.trys.push([4, 6, , 7]);
|
|
149
163
|
return [4 /*yield*/, this.eventManager.fire('beforeSearch', {
|
|
150
164
|
controller: this,
|
|
151
165
|
request: params,
|
|
152
166
|
})];
|
|
153
167
|
case 5:
|
|
154
|
-
|
|
168
|
+
_l.sent();
|
|
155
169
|
return [3 /*break*/, 7];
|
|
156
170
|
case 6:
|
|
157
|
-
err_1 =
|
|
171
|
+
err_1 = _l.sent();
|
|
158
172
|
if ((err_1 === null || err_1 === void 0 ? void 0 : err_1.message) == 'cancelled') {
|
|
159
173
|
this.log.warn("'beforeSearch' middleware cancelled");
|
|
160
174
|
return [2 /*return*/];
|
|
@@ -183,7 +197,7 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
183
197
|
searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
|
|
184
198
|
return [4 /*yield*/, this.client.search(params)];
|
|
185
199
|
case 8:
|
|
186
|
-
_a =
|
|
200
|
+
_a = _l.sent(), meta = _a[0], response = _a[1];
|
|
187
201
|
// @ts-ignore
|
|
188
202
|
if (!response.meta) {
|
|
189
203
|
/**
|
|
@@ -194,41 +208,41 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
194
208
|
response.meta = meta;
|
|
195
209
|
}
|
|
196
210
|
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 = ((
|
|
198
|
-
if (!(((
|
|
211
|
+
previousResults_1 = JSON.parse(JSON.stringify(this.store.results)) || [];
|
|
212
|
+
if (!(((_j = this.config.settings) === null || _j === void 0 ? void 0 : _j.infinite.backfill) && !previousResults_1.length)) return [3 /*break*/, 10];
|
|
199
213
|
backfills = [];
|
|
200
|
-
for (page = 1; page < ((
|
|
214
|
+
for (page = 1; page < ((_k = params.pagination) === null || _k === void 0 ? void 0 : _k.page); page++) {
|
|
201
215
|
backfillParams = (0, deepmerge_1.default)(__assign({}, params), { pagination: { page: page } });
|
|
202
216
|
backfills.push(this.client.search(backfillParams));
|
|
203
217
|
}
|
|
204
218
|
return [4 /*yield*/, Promise.all(backfills)];
|
|
205
219
|
case 9:
|
|
206
|
-
backfillResponses =
|
|
220
|
+
backfillResponses = _l.sent();
|
|
207
221
|
backfillResponses.map(function (_a) {
|
|
208
222
|
var meta = _a[0], data = _a[1];
|
|
209
223
|
previousResults_1 = previousResults_1.concat(data.results);
|
|
210
224
|
});
|
|
211
|
-
|
|
225
|
+
_l.label = 10;
|
|
212
226
|
case 10:
|
|
213
227
|
response.results = __spreadArray(__spreadArray([], previousResults_1, true), (response.results || []), true);
|
|
214
|
-
|
|
228
|
+
_l.label = 11;
|
|
215
229
|
case 11:
|
|
216
230
|
searchProfile.stop();
|
|
217
231
|
this.log.profile(searchProfile);
|
|
218
232
|
afterSearchProfile = this.profiler.create({ type: 'event', name: 'afterSearch', context: params }).start();
|
|
219
|
-
|
|
233
|
+
_l.label = 12;
|
|
220
234
|
case 12:
|
|
221
|
-
|
|
235
|
+
_l.trys.push([12, 14, , 15]);
|
|
222
236
|
return [4 /*yield*/, this.eventManager.fire('afterSearch', {
|
|
223
237
|
controller: this,
|
|
224
238
|
request: params,
|
|
225
239
|
response: response,
|
|
226
240
|
})];
|
|
227
241
|
case 13:
|
|
228
|
-
|
|
242
|
+
_l.sent();
|
|
229
243
|
return [3 /*break*/, 15];
|
|
230
244
|
case 14:
|
|
231
|
-
err_2 =
|
|
245
|
+
err_2 = _l.sent();
|
|
232
246
|
if ((err_2 === null || err_2 === void 0 ? void 0 : err_2.message) == 'cancelled') {
|
|
233
247
|
this.log.warn("'afterSearch' middleware cancelled");
|
|
234
248
|
afterSearchProfile.stop();
|
|
@@ -246,19 +260,19 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
246
260
|
// @ts-ignore
|
|
247
261
|
this.store.update(response);
|
|
248
262
|
afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
|
|
249
|
-
|
|
263
|
+
_l.label = 16;
|
|
250
264
|
case 16:
|
|
251
|
-
|
|
265
|
+
_l.trys.push([16, 18, , 19]);
|
|
252
266
|
return [4 /*yield*/, this.eventManager.fire('afterStore', {
|
|
253
267
|
controller: this,
|
|
254
268
|
request: params,
|
|
255
269
|
response: response,
|
|
256
270
|
})];
|
|
257
271
|
case 17:
|
|
258
|
-
|
|
272
|
+
_l.sent();
|
|
259
273
|
return [3 /*break*/, 19];
|
|
260
274
|
case 18:
|
|
261
|
-
err_3 =
|
|
275
|
+
err_3 = _l.sent();
|
|
262
276
|
if ((err_3 === null || err_3 === void 0 ? void 0 : err_3.message) == 'cancelled') {
|
|
263
277
|
this.log.warn("'afterStore' middleware cancelled");
|
|
264
278
|
afterStoreProfile.stop();
|
|
@@ -274,7 +288,7 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
274
288
|
this.log.profile(afterStoreProfile);
|
|
275
289
|
return [3 /*break*/, 21];
|
|
276
290
|
case 20:
|
|
277
|
-
err_4 =
|
|
291
|
+
err_4 = _l.sent();
|
|
278
292
|
if (err_4) {
|
|
279
293
|
switch (err_4) {
|
|
280
294
|
case 429:
|
|
@@ -306,6 +320,12 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
306
320
|
}); };
|
|
307
321
|
// deep merge config with defaults
|
|
308
322
|
_this.config = (0, deepmerge_1.default)(defaultConfig, _this.config);
|
|
323
|
+
if (((_b = _this.config.settings) === null || _b === void 0 ? void 0 : _b.infinite) && typeof _this.config.settings.infinite.restorePosition == 'undefined') {
|
|
324
|
+
_this.config.settings.infinite.restorePosition = true;
|
|
325
|
+
}
|
|
326
|
+
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)) {
|
|
327
|
+
window.history.scrollRestoration = 'manual';
|
|
328
|
+
}
|
|
309
329
|
_this.store.setConfig(_this.config);
|
|
310
330
|
_this.storage = new snap_store_mobx_1.StorageStore({
|
|
311
331
|
type: snap_store_mobx_1.StorageType.SESSION,
|
|
@@ -355,18 +375,26 @@ var SearchController = /** @class */ (function (_super) {
|
|
|
355
375
|
});
|
|
356
376
|
}); });
|
|
357
377
|
_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;
|
|
378
|
+
var requestParams, stringyParams, scrollMap_1, scrollToPosition_1, checkCount_1, heightCheck_1;
|
|
359
379
|
var _this = this;
|
|
360
|
-
var _a;
|
|
361
|
-
return __generator(this, function (
|
|
362
|
-
switch (
|
|
380
|
+
var _a, _b, _c;
|
|
381
|
+
return __generator(this, function (_d) {
|
|
382
|
+
switch (_d.label) {
|
|
363
383
|
case 0: return [4 /*yield*/, next()];
|
|
364
384
|
case 1:
|
|
365
|
-
|
|
385
|
+
_d.sent();
|
|
366
386
|
search.controller.store.loading = false;
|
|
367
|
-
|
|
368
|
-
this.storage.set('lastStringyParams',
|
|
369
|
-
|
|
387
|
+
// save last params
|
|
388
|
+
this.storage.set('lastStringyParams', JSON.stringify(search.request));
|
|
389
|
+
requestParams = __assign({}, search.request);
|
|
390
|
+
if (requestParams.personalization) {
|
|
391
|
+
delete requestParams.personalization;
|
|
392
|
+
}
|
|
393
|
+
if ((_a = requestParams === null || requestParams === void 0 ? void 0 : requestParams.search) === null || _a === void 0 ? void 0 : _a.redirectResponse) {
|
|
394
|
+
delete requestParams.search.redirectResponse;
|
|
395
|
+
}
|
|
396
|
+
stringyParams = JSON.stringify(requestParams);
|
|
397
|
+
if ((_c = (_b = this.config.settings) === null || _b === void 0 ? void 0 : _b.infinite) === null || _c === void 0 ? void 0 : _c.restorePosition) {
|
|
370
398
|
scrollMap_1 = this.storage.get('scrollMap') || {};
|
|
371
399
|
scrollToPosition_1 = scrollMap_1[stringyParams];
|
|
372
400
|
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,
|
|
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,CAwCvB;IAEF,IAAI,MAAM,IAAI,kBAAkB,CAsC/B;IAED,MAAM,QAAa,QAAQ,IAAI,CAAC,CA0J9B;CACF"}
|
|
@@ -28,7 +28,19 @@ export class SearchController extends AbstractController {
|
|
|
28
28
|
click: (e, result) => {
|
|
29
29
|
// store scroll position
|
|
30
30
|
if (this.config.settings?.infinite) {
|
|
31
|
-
|
|
31
|
+
let stringyParams = this.storage.get('lastStringyParams');
|
|
32
|
+
const paramsObj = JSON.parse(stringyParams);
|
|
33
|
+
if (paramsObj?.search?.redirectResponse) {
|
|
34
|
+
delete paramsObj?.search?.redirectResponse;
|
|
35
|
+
if (paramsObj?.search && Object.keys(paramsObj?.search).length === 0) {
|
|
36
|
+
// if redirectResponse was the only key, also delete the empty search object
|
|
37
|
+
delete paramsObj.search;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (paramsObj?.personalization) {
|
|
41
|
+
delete paramsObj?.personalization;
|
|
42
|
+
}
|
|
43
|
+
stringyParams = JSON.stringify(paramsObj);
|
|
32
44
|
const scrollMap = {};
|
|
33
45
|
scrollMap[stringyParams] = window.scrollY;
|
|
34
46
|
this.storage.set('scrollMap', scrollMap);
|
|
@@ -100,7 +112,7 @@ export class SearchController extends AbstractController {
|
|
|
100
112
|
// if params.page > 1 and infinite setting exists we should append results
|
|
101
113
|
if (this.config.settings?.infinite && params.pagination?.page > 1) {
|
|
102
114
|
// if no results fetch results...
|
|
103
|
-
let previousResults = this.store.
|
|
115
|
+
let previousResults = JSON.parse(JSON.stringify(this.store.results)) || [];
|
|
104
116
|
if (this.config.settings?.infinite.backfill && !previousResults.length) {
|
|
105
117
|
// figure out how many pages of results to backfill and wait on all responses
|
|
106
118
|
const backfills = [];
|
|
@@ -192,6 +204,12 @@ export class SearchController extends AbstractController {
|
|
|
192
204
|
};
|
|
193
205
|
// deep merge config with defaults
|
|
194
206
|
this.config = deepmerge(defaultConfig, this.config);
|
|
207
|
+
if (this.config.settings?.infinite && typeof this.config.settings.infinite.restorePosition == 'undefined') {
|
|
208
|
+
this.config.settings.infinite.restorePosition = true;
|
|
209
|
+
}
|
|
210
|
+
if (window?.history && this.config.settings?.infinite?.restorePosition) {
|
|
211
|
+
window.history.scrollRestoration = 'manual';
|
|
212
|
+
}
|
|
195
213
|
this.store.setConfig(this.config);
|
|
196
214
|
this.storage = new StorageStore({
|
|
197
215
|
type: StorageType.SESSION,
|
|
@@ -226,10 +244,17 @@ export class SearchController extends AbstractController {
|
|
|
226
244
|
await next();
|
|
227
245
|
search.controller.store.loading = false;
|
|
228
246
|
// save last params
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
if (
|
|
232
|
-
|
|
247
|
+
this.storage.set('lastStringyParams', JSON.stringify(search.request));
|
|
248
|
+
const requestParams = { ...search.request };
|
|
249
|
+
if (requestParams.personalization) {
|
|
250
|
+
delete requestParams.personalization;
|
|
251
|
+
}
|
|
252
|
+
if (requestParams?.search?.redirectResponse) {
|
|
253
|
+
delete requestParams.search.redirectResponse;
|
|
254
|
+
}
|
|
255
|
+
const stringyParams = JSON.stringify(requestParams);
|
|
256
|
+
if (this.config.settings?.infinite?.restorePosition) {
|
|
257
|
+
// restore the scroll position saved previously
|
|
233
258
|
const scrollMap = this.storage.get('scrollMap') || {};
|
|
234
259
|
// interval we ony need to keep checking until the page height > than our stored value
|
|
235
260
|
const scrollToPosition = scrollMap[stringyParams];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-controller",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.32.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.
|
|
23
|
+
"@searchspring/snap-toolbox": "^0.32.0",
|
|
24
24
|
"deepmerge": "4.2.2"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@searchspring/snap-client": "^0.
|
|
28
|
-
"@searchspring/snap-event-manager": "^0.
|
|
29
|
-
"@searchspring/snap-logger": "^0.
|
|
30
|
-
"@searchspring/snap-profiler": "^0.
|
|
31
|
-
"@searchspring/snap-store-mobx": "^0.
|
|
32
|
-
"@searchspring/snap-tracker": "^0.
|
|
33
|
-
"@searchspring/snap-url-manager": "^0.
|
|
27
|
+
"@searchspring/snap-client": "^0.32.0",
|
|
28
|
+
"@searchspring/snap-event-manager": "^0.32.0",
|
|
29
|
+
"@searchspring/snap-logger": "^0.32.0",
|
|
30
|
+
"@searchspring/snap-profiler": "^0.32.0",
|
|
31
|
+
"@searchspring/snap-store-mobx": "^0.32.0",
|
|
32
|
+
"@searchspring/snap-tracker": "^0.32.0",
|
|
33
|
+
"@searchspring/snap-url-manager": "^0.32.0"
|
|
34
34
|
},
|
|
35
35
|
"sideEffects": false,
|
|
36
36
|
"files": [
|
|
37
37
|
"dist/**/*"
|
|
38
38
|
],
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "d63f3b80dca47a54658a6e61c1311044028ff060"
|
|
40
40
|
}
|