@searchspring/snap-controller 0.27.5 → 0.27.8
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.
- package/dist/cjs/Abstract/AbstractController.d.ts +5 -4
- package/dist/cjs/Abstract/AbstractController.d.ts.map +1 -1
- package/dist/cjs/Autocomplete/AutocompleteController.d.ts +6 -5
- package/dist/cjs/Autocomplete/AutocompleteController.d.ts.map +1 -1
- package/dist/cjs/Autocomplete/AutocompleteController.js +43 -37
- package/dist/cjs/Finder/FinderController.d.ts.map +1 -1
- package/dist/cjs/Finder/FinderController.js +4 -1
- package/dist/cjs/Recommendation/RecommendationController.d.ts +26 -12
- package/dist/cjs/Recommendation/RecommendationController.d.ts.map +1 -1
- package/dist/cjs/Recommendation/RecommendationController.js +12 -11
- package/dist/cjs/Search/SearchController.d.ts +1 -1
- package/dist/cjs/Search/SearchController.d.ts.map +1 -1
- package/dist/cjs/Search/SearchController.js +39 -36
- package/dist/cjs/types.d.ts +3 -3
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/utils/getParams.d.ts +2 -1
- package/dist/cjs/utils/getParams.d.ts.map +1 -1
- package/dist/cjs/utils/getParams.js +0 -1
- package/dist/esm/Abstract/AbstractController.d.ts +5 -4
- package/dist/esm/Abstract/AbstractController.d.ts.map +1 -1
- package/dist/esm/Autocomplete/AutocompleteController.d.ts +6 -5
- package/dist/esm/Autocomplete/AutocompleteController.d.ts.map +1 -1
- package/dist/esm/Autocomplete/AutocompleteController.js +13 -8
- package/dist/esm/Finder/FinderController.d.ts.map +1 -1
- package/dist/esm/Finder/FinderController.js +4 -1
- package/dist/esm/Recommendation/RecommendationController.d.ts +26 -12
- package/dist/esm/Recommendation/RecommendationController.d.ts.map +1 -1
- package/dist/esm/Recommendation/RecommendationController.js +11 -10
- package/dist/esm/Search/SearchController.d.ts +1 -1
- package/dist/esm/Search/SearchController.d.ts.map +1 -1
- package/dist/esm/Search/SearchController.js +8 -5
- package/dist/esm/types.d.ts +3 -3
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/utils/getParams.d.ts +2 -1
- package/dist/esm/utils/getParams.d.ts.map +1 -1
- package/dist/esm/utils/getParams.js +0 -1
- package/package.json +11 -11
|
@@ -27,7 +27,7 @@ export class SearchController extends AbstractController {
|
|
|
27
27
|
product: {
|
|
28
28
|
click: (e, result) => {
|
|
29
29
|
// store scroll position
|
|
30
|
-
if (this.config.settings
|
|
30
|
+
if (this.config.settings?.infinite) {
|
|
31
31
|
const stringyParams = this.storage.get('lastStringyParams');
|
|
32
32
|
const scrollMap = {};
|
|
33
33
|
scrollMap[stringyParams] = window.scrollY;
|
|
@@ -75,7 +75,7 @@ export class SearchController extends AbstractController {
|
|
|
75
75
|
// no param change - not searching
|
|
76
76
|
return;
|
|
77
77
|
}
|
|
78
|
-
if (this.config.settings
|
|
78
|
+
if (this.config.settings?.infinite) {
|
|
79
79
|
// TODO: refactor this
|
|
80
80
|
const preventBackfill = this.config.settings.infinite?.backfill && !this.store.results.length && params.pagination?.page > this.config.settings.infinite.backfill;
|
|
81
81
|
const dontBackfill = !this.config.settings.infinite?.backfill && !this.store.results.length && params.pagination?.page > 1;
|
|
@@ -87,22 +87,24 @@ export class SearchController extends AbstractController {
|
|
|
87
87
|
}
|
|
88
88
|
const searchProfile = this.profiler.create({ type: 'event', name: 'search', context: params }).start();
|
|
89
89
|
const [meta, response] = await this.client.search(params);
|
|
90
|
+
// @ts-ignore
|
|
90
91
|
if (!response.meta) {
|
|
91
92
|
/**
|
|
92
93
|
* MockClient will overwrite the client search() method and use
|
|
93
94
|
* SearchData to return mock data which already contains meta data
|
|
94
95
|
*/
|
|
96
|
+
// @ts-ignore
|
|
95
97
|
response.meta = meta;
|
|
96
98
|
}
|
|
97
99
|
// infinite functionality
|
|
98
100
|
// if params.page > 1 and infinite setting exists we should append results
|
|
99
|
-
if (this.config.settings
|
|
101
|
+
if (this.config.settings?.infinite && params.pagination?.page > 1) {
|
|
100
102
|
// if no results fetch results...
|
|
101
103
|
let previousResults = this.store.data?.results || [];
|
|
102
104
|
if (this.config.settings?.infinite.backfill && !previousResults.length) {
|
|
103
105
|
// figure out how many pages of results to backfill and wait on all responses
|
|
104
106
|
const backfills = [];
|
|
105
|
-
for (let page = 1; page < params.pagination
|
|
107
|
+
for (let page = 1; page < params.pagination?.page; page++) {
|
|
106
108
|
const backfillParams = deepmerge({ ...params }, { pagination: { page } });
|
|
107
109
|
backfills.push(this.client.search(backfillParams));
|
|
108
110
|
}
|
|
@@ -137,6 +139,7 @@ export class SearchController extends AbstractController {
|
|
|
137
139
|
afterSearchProfile.stop();
|
|
138
140
|
this.log.profile(afterSearchProfile);
|
|
139
141
|
// update the store
|
|
142
|
+
// @ts-ignore
|
|
140
143
|
this.store.update(response);
|
|
141
144
|
const afterStoreProfile = this.profiler.create({ type: 'event', name: 'afterStore', context: params }).start();
|
|
142
145
|
try {
|
|
@@ -250,7 +253,7 @@ export class SearchController extends AbstractController {
|
|
|
250
253
|
this.use(this.config);
|
|
251
254
|
}
|
|
252
255
|
get params() {
|
|
253
|
-
const params = deepmerge({ ...getSearchParams(this.urlManager.state) }, this.config.globals);
|
|
256
|
+
const params = deepmerge({ ...getSearchParams(this.urlManager.state) }, this.config.globals || {});
|
|
254
257
|
// redirect setting
|
|
255
258
|
if (!this.config.settings?.redirects?.merchandising || this.store.loaded) {
|
|
256
259
|
params.search = params.search || {};
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AbstractController } from './Abstract/AbstractController';
|
|
2
2
|
import type { EventManager, Middleware, Next } from '@searchspring/snap-event-manager';
|
|
3
3
|
import type { Client } from '@searchspring/snap-client';
|
|
4
|
-
import type {
|
|
4
|
+
import type { SearchStore, AutocompleteStore, FinderStore, RecommendationStore, StoreConfig, SearchStoreConfig, FinderStoreConfig, AutocompleteStoreConfig, RecommendationStoreConfig } from '@searchspring/snap-store-mobx';
|
|
5
5
|
import type { Tracker, ProductViewEvent } from '@searchspring/snap-tracker';
|
|
6
6
|
import type { Profiler } from '@searchspring/snap-profiler';
|
|
7
7
|
import type { UrlManager } from '@searchspring/snap-url-manager';
|
|
@@ -12,7 +12,7 @@ declare global {
|
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
export declare type NextEvent = Next;
|
|
15
|
-
export declare type PluginFunction = (cntrlr: AbstractController, ...args: any
|
|
15
|
+
export declare type PluginFunction = (cntrlr: AbstractController, ...args: any) => Promise<void>;
|
|
16
16
|
export declare type PluginGrouping = [func: PluginFunction, ...args: unknown[]];
|
|
17
17
|
export declare type BeforeSearchObj = {
|
|
18
18
|
controller: AbstractController;
|
|
@@ -35,7 +35,7 @@ export declare enum ControllerTypes {
|
|
|
35
35
|
}
|
|
36
36
|
export declare type ControllerServices = {
|
|
37
37
|
client: Client;
|
|
38
|
-
store:
|
|
38
|
+
store: SearchStore | AutocompleteStore | FinderStore | RecommendationStore;
|
|
39
39
|
urlManager: UrlManager;
|
|
40
40
|
eventManager: EventManager;
|
|
41
41
|
profiler: Profiler;
|
package/dist/esm/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AAEvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EACX,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import type { ImmutableUrlState } from '@searchspring/snap-url-manager';
|
|
2
|
+
export declare function getSearchParams(state: ImmutableUrlState): Record<string, any>;
|
|
2
3
|
//# sourceMappingURL=getParams.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getParams.d.ts","sourceRoot":"","sources":["../../../src/utils/getParams.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getParams.d.ts","sourceRoot":"","sources":["../../../src/utils/getParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAqCxE,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAgF7E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@searchspring/snap-controller",
|
|
3
|
-
"version": "0.27.
|
|
3
|
+
"version": "0.27.8",
|
|
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.27.
|
|
24
|
-
"deepmerge": "
|
|
23
|
+
"@searchspring/snap-toolbox": "^0.27.8",
|
|
24
|
+
"deepmerge": "4.2.2"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@searchspring/snap-client": "^0.27.
|
|
28
|
-
"@searchspring/snap-event-manager": "^0.27.
|
|
29
|
-
"@searchspring/snap-logger": "^0.27.
|
|
30
|
-
"@searchspring/snap-profiler": "^0.27.
|
|
31
|
-
"@searchspring/snap-store-mobx": "^0.27.
|
|
32
|
-
"@searchspring/snap-tracker": "^0.27.
|
|
33
|
-
"@searchspring/snap-url-manager": "^0.27.
|
|
27
|
+
"@searchspring/snap-client": "^0.27.8",
|
|
28
|
+
"@searchspring/snap-event-manager": "^0.27.8",
|
|
29
|
+
"@searchspring/snap-logger": "^0.27.8",
|
|
30
|
+
"@searchspring/snap-profiler": "^0.27.8",
|
|
31
|
+
"@searchspring/snap-store-mobx": "^0.27.8",
|
|
32
|
+
"@searchspring/snap-tracker": "^0.27.8",
|
|
33
|
+
"@searchspring/snap-url-manager": "^0.27.8"
|
|
34
34
|
},
|
|
35
35
|
"sideEffects": false,
|
|
36
36
|
"files": [
|
|
37
37
|
"dist/**/*"
|
|
38
38
|
],
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "cfbe6d18899fb4944ec397e2419d8409d4ab0065"
|
|
40
40
|
}
|