@usereactify/search 5.47.0 → 5.48.0-beta.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.
- package/CHANGELOG.md +21 -0
- package/dist/package.json +1 -1
- package/dist/src/components/Filter/Filter.js +45 -10
- package/dist/src/components/Filter/Filter.js.map +1 -1
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.d.ts +1 -1
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js.map +1 -1
- package/dist/src/components/Result/Results.d.ts +0 -2
- package/dist/src/components/Result/Results.js +9 -21
- package/dist/src/components/Result/Results.js.map +1 -1
- package/dist/src/components/Sensor/SensorCollection.js +8 -80
- package/dist/src/components/Sensor/SensorCollection.js.map +1 -1
- package/dist/src/components/Sensor/SensorCustom.js +6 -2
- package/dist/src/components/Sensor/SensorCustom.js.map +1 -1
- package/dist/src/components/Sensor/SensorInventoryAvailable.js +8 -44
- package/dist/src/components/Sensor/SensorInventoryAvailable.js.map +1 -1
- package/dist/src/components/Sensor/SensorPublished.js +7 -27
- package/dist/src/components/Sensor/SensorPublished.js.map +1 -1
- package/dist/src/components/Sensor/SensorSort.js +10 -203
- package/dist/src/components/Sensor/SensorSort.js.map +1 -1
- package/dist/src/hooks/reactivesearch/index.d.ts +0 -6
- package/dist/src/hooks/reactivesearch/index.js +0 -6
- package/dist/src/hooks/reactivesearch/index.js.map +1 -1
- package/dist/src/hooks/usePagination.js +1 -1
- package/dist/src/hooks/usePagination.js.map +1 -1
- package/dist/src/hooks/useSortBy.js +14 -17
- package/dist/src/hooks/useSortBy.js.map +1 -1
- package/dist/src/utility/curation.d.ts +7 -0
- package/dist/src/utility/curation.js +85 -0
- package/dist/src/utility/curation.js.map +1 -0
- package/dist/src/utility/filters.d.ts +6 -0
- package/dist/src/utility/filters.js +36 -0
- package/dist/src/utility/filters.js.map +1 -0
- package/dist/src/utility/props.d.ts +143 -10
- package/dist/src/utility/props.js +241 -25
- package/dist/src/utility/props.js.map +1 -1
- package/dist/src/utility/server.js +1 -1
- package/dist/src/utility/server.js.map +1 -1
- package/dist/src/utility/sortOption.d.ts +22 -0
- package/dist/src/utility/sortOption.js +198 -0
- package/dist/src/utility/sortOption.js.map +1 -0
- package/package.json +1 -1
- package/dist/src/hooks/reactivesearch/useReactiveFilterListProps.d.ts +0 -84
- package/dist/src/hooks/reactivesearch/useReactiveFilterListProps.js +0 -21
- package/dist/src/hooks/reactivesearch/useReactiveFilterListProps.js.map +0 -1
- package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.d.ts +0 -86
- package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.js +0 -32
- package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.js.map +0 -1
- package/dist/src/hooks/reactivesearch/useReactiveFilterSharedProps.d.ts +0 -77
- package/dist/src/hooks/reactivesearch/useReactiveFilterSharedProps.js +0 -124
- package/dist/src/hooks/reactivesearch/useReactiveFilterSharedProps.js.map +0 -1
- package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.d.ts +0 -83
- package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.js +0 -28
- package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.js.map +0 -1
- package/dist/src/hooks/reactivesearch/useReactiveReactProp.d.ts +0 -4
- package/dist/src/hooks/reactivesearch/useReactiveReactProp.js +0 -32
- package/dist/src/hooks/reactivesearch/useReactiveReactProp.js.map +0 -1
- package/dist/src/hooks/reactivesearch/useReactiveReactiveListProps.d.ts +0 -6
- package/dist/src/hooks/reactivesearch/useReactiveReactiveListProps.js +0 -38
- package/dist/src/hooks/reactivesearch/useReactiveReactiveListProps.js.map +0 -1
|
@@ -7,57 +7,21 @@ exports.SensorInventoryAvailable = void 0;
|
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const ReactiveComponent_1 = __importDefault(require("@appbaseio/reactivesearch/lib/components/basic/ReactiveComponent"));
|
|
9
9
|
const hooks_1 = require("../../hooks");
|
|
10
|
+
const props_1 = require("../../utility/props");
|
|
10
11
|
const SensorInventoryAvailable = () => {
|
|
11
|
-
const { options } = (0, hooks_1.useReactifySearchContext)();
|
|
12
12
|
const flagsHook = (0, hooks_1.useFlags)();
|
|
13
|
-
const
|
|
14
|
-
|
|
13
|
+
const reactifySearchContext = (0, hooks_1.useReactifySearchContext)();
|
|
14
|
+
const reactiveProps = (0, props_1.getPropsSensorInventoryAvailable)({
|
|
15
|
+
config: reactifySearchContext.config,
|
|
16
|
+
provider: reactifySearchContext.options,
|
|
17
|
+
});
|
|
18
|
+
if (!reactiveProps) {
|
|
15
19
|
return null;
|
|
16
20
|
}
|
|
17
21
|
if (!flagsHook.flags["reactify-search:flag_sensor_inventoryavailable"]) {
|
|
18
22
|
return null;
|
|
19
23
|
}
|
|
20
|
-
return (react_1.default.createElement(ReactiveComponent_1.default, {
|
|
21
|
-
query: {
|
|
22
|
-
bool: {
|
|
23
|
-
should: [
|
|
24
|
-
{
|
|
25
|
-
bool: {
|
|
26
|
-
must: [
|
|
27
|
-
{
|
|
28
|
-
term: {
|
|
29
|
-
type: {
|
|
30
|
-
value: "product",
|
|
31
|
-
},
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
nested: {
|
|
36
|
-
path: "variants",
|
|
37
|
-
query: {
|
|
38
|
-
match: { "variants.available": true },
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
],
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
...(options.mode === "instant-search"
|
|
46
|
-
? []
|
|
47
|
-
: [
|
|
48
|
-
{
|
|
49
|
-
term: {
|
|
50
|
-
type: {
|
|
51
|
-
value: "callout",
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
]),
|
|
56
|
-
],
|
|
57
|
-
minimum_should_match: "1",
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
}) }));
|
|
24
|
+
return (react_1.default.createElement(ReactiveComponent_1.default, Object.assign({}, reactiveProps)));
|
|
61
25
|
};
|
|
62
26
|
exports.SensorInventoryAvailable = SensorInventoryAvailable;
|
|
63
27
|
//# sourceMappingURL=SensorInventoryAvailable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SensorInventoryAvailable.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorInventoryAvailable.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yHAAiG;AAEjG,
|
|
1
|
+
{"version":3,"file":"SensorInventoryAvailable.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorInventoryAvailable.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yHAAiG;AAEjG,uCAAiE;AACjE,+CAAuE;AAEhE,MAAM,wBAAwB,GAAa,GAAG,EAAE;IACrD,MAAM,SAAS,GAAG,IAAA,gBAAQ,GAAE,CAAC;IAE7B,MAAM,qBAAqB,GAAG,IAAA,gCAAwB,GAAE,CAAC;IACzD,MAAM,aAAa,GAAG,IAAA,wCAAgC,EAAC;QACrD,MAAM,EAAE,qBAAqB,CAAC,MAAM;QACpC,QAAQ,EAAE,qBAAqB,CAAC,OAAO;KACxC,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gDAAgD,CAAC,EAAE;QACtE,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,8BAAC,2BAAiB,oBACZ,aAAa,EACjB,CACH,CAAC;AACJ,CAAC,CAAC;AAtBW,QAAA,wBAAwB,4BAsBnC","sourcesContent":["import React from \"react\";\nimport ReactiveComponent from \"@appbaseio/reactivesearch/lib/components/basic/ReactiveComponent\";\n\nimport { useFlags, useReactifySearchContext } from \"../../hooks\";\nimport { getPropsSensorInventoryAvailable } from \"../../utility/props\";\n\nexport const SensorInventoryAvailable: React.FC = () => {\n const flagsHook = useFlags();\n \n const reactifySearchContext = useReactifySearchContext();\n const reactiveProps = getPropsSensorInventoryAvailable({\n config: reactifySearchContext.config,\n provider: reactifySearchContext.options,\n });\n\n if (!reactiveProps) {\n return null;\n }\n\n if (!flagsHook.flags[\"reactify-search:flag_sensor_inventoryavailable\"]) {\n return null;\n }\n\n return (\n <ReactiveComponent\n {...reactiveProps}\n />\n );\n};\n"]}
|
|
@@ -7,38 +7,18 @@ exports.SensorPublished = void 0;
|
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const ReactiveComponent_1 = __importDefault(require("@appbaseio/reactivesearch/lib/components/basic/ReactiveComponent"));
|
|
9
9
|
const hooks_1 = require("../../hooks");
|
|
10
|
+
const props_1 = require("../../utility/props");
|
|
10
11
|
const SensorPublished = () => {
|
|
11
12
|
const flagsHook = (0, hooks_1.useFlags)();
|
|
12
|
-
const
|
|
13
|
+
const reactifySearchContext = (0, hooks_1.useReactifySearchContext)();
|
|
14
|
+
const reactiveProps = (0, props_1.getPropsSensorPublished)({
|
|
15
|
+
config: reactifySearchContext.config,
|
|
16
|
+
provider: reactifySearchContext.options,
|
|
17
|
+
});
|
|
13
18
|
if (!flagsHook.flags["reactify-search:flag_sensor_published"]) {
|
|
14
19
|
return null;
|
|
15
20
|
}
|
|
16
|
-
return (react_1.default.createElement(ReactiveComponent_1.default, {
|
|
17
|
-
if (options.market) {
|
|
18
|
-
return {
|
|
19
|
-
query: {
|
|
20
|
-
bool: {
|
|
21
|
-
must: [{
|
|
22
|
-
match: {
|
|
23
|
-
markets: options.market,
|
|
24
|
-
},
|
|
25
|
-
}, {
|
|
26
|
-
match: {
|
|
27
|
-
published: true,
|
|
28
|
-
},
|
|
29
|
-
}]
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
return {
|
|
35
|
-
query: {
|
|
36
|
-
match: {
|
|
37
|
-
published: true,
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
};
|
|
41
|
-
} }));
|
|
21
|
+
return (react_1.default.createElement(ReactiveComponent_1.default, Object.assign({}, reactiveProps)));
|
|
42
22
|
};
|
|
43
23
|
exports.SensorPublished = SensorPublished;
|
|
44
24
|
//# sourceMappingURL=SensorPublished.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SensorPublished.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorPublished.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yHAAiG;AAEjG,uCAAiE;
|
|
1
|
+
{"version":3,"file":"SensorPublished.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorPublished.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yHAAiG;AAEjG,uCAAiE;AACjE,+CAA8D;AAEvD,MAAM,eAAe,GAAa,GAAG,EAAE;IAC5C,MAAM,SAAS,GAAG,IAAA,gBAAQ,GAAE,CAAC;IAC7B,MAAM,qBAAqB,GAAG,IAAA,gCAAwB,GAAE,CAAC;IACzD,MAAM,aAAa,GAAG,IAAA,+BAAuB,EAAC;QAC5C,MAAM,EAAE,qBAAqB,CAAC,MAAM;QACpC,QAAQ,EAAE,qBAAqB,CAAC,OAAO;KACxC,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,uCAAuC,CAAC,EAAE;QAC7D,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,8BAAC,2BAAiB,oBACZ,aAAa,EACjB,CACH,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,eAAe,mBAiB1B","sourcesContent":["import React from \"react\";\nimport ReactiveComponent from \"@appbaseio/reactivesearch/lib/components/basic/ReactiveComponent\";\n\nimport { useFlags, useReactifySearchContext } from \"../../hooks\";\nimport { getPropsSensorPublished } from \"../../utility/props\";\n\nexport const SensorPublished: React.FC = () => {\n const flagsHook = useFlags();\n const reactifySearchContext = useReactifySearchContext();\n const reactiveProps = getPropsSensorPublished({\n config: reactifySearchContext.config,\n provider: reactifySearchContext.options,\n });\n\n if (!flagsHook.flags[\"reactify-search:flag_sensor_published\"]) {\n return null;\n }\n\n return (\n <ReactiveComponent\n {...reactiveProps}\n />\n );\n};\n"]}
|
|
@@ -7,215 +7,22 @@ exports.SensorSort = void 0;
|
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const ReactiveComponent_1 = __importDefault(require("@appbaseio/reactivesearch/lib/components/basic/ReactiveComponent"));
|
|
9
9
|
const hooks_1 = require("../../hooks");
|
|
10
|
+
const props_1 = require("../../utility/props");
|
|
10
11
|
const SensorSort = () => {
|
|
11
12
|
const flagsHook = (0, hooks_1.useFlags)();
|
|
12
|
-
const
|
|
13
|
-
const { curation } = (0, hooks_1.useCuration)();
|
|
13
|
+
const reactifySearchContext = (0, hooks_1.useReactifySearchContext)();
|
|
14
14
|
const { sortOption } = (0, hooks_1.useSortBy)();
|
|
15
|
-
const {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
collectionHandle: options.mode === "collection" ? options.collectionHandle : undefined,
|
|
23
|
-
}),
|
|
24
|
-
query: buildQuery({
|
|
25
|
-
sortOption,
|
|
26
|
-
curation,
|
|
27
|
-
}),
|
|
28
|
-
};
|
|
29
|
-
}, [options, config, sortOption, curation]);
|
|
15
|
+
const { searchTerm } = (0, hooks_1.useSearch)();
|
|
16
|
+
const reactiveProps = (0, props_1.getPropsSensorSort)({
|
|
17
|
+
config: reactifySearchContext.config,
|
|
18
|
+
provider: reactifySearchContext.options,
|
|
19
|
+
sortOption: sortOption === null || sortOption === void 0 ? void 0 : sortOption.handle,
|
|
20
|
+
searchTerm: searchTerm,
|
|
21
|
+
});
|
|
30
22
|
if (!flagsHook.flags["reactify-search:flag_sensor_sort"]) {
|
|
31
23
|
return null;
|
|
32
24
|
}
|
|
33
|
-
return (react_1.default.createElement(ReactiveComponent_1.default, {
|
|
34
|
-
sort,
|
|
35
|
-
query,
|
|
36
|
-
}) }));
|
|
25
|
+
return (react_1.default.createElement(ReactiveComponent_1.default, Object.assign({}, reactiveProps)));
|
|
37
26
|
};
|
|
38
27
|
exports.SensorSort = SensorSort;
|
|
39
|
-
const buildSort = (args) => {
|
|
40
|
-
const { mode, curation, sortOption, collectionHandle } = args;
|
|
41
|
-
// curation positions are only applied for the default `collections.position` or `_score` sort
|
|
42
|
-
// if the sort is something else, apply a normal sort which applies what the user has requested
|
|
43
|
-
if (mode !== "instant-search") {
|
|
44
|
-
if (sortOption &&
|
|
45
|
-
!["_score", "collections.position"].includes(sortOption.field)) {
|
|
46
|
-
return [{ [sortOption.field]: sortOption.direction }];
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
const sorts = [];
|
|
50
|
-
// collection curation pin sorting
|
|
51
|
-
if (mode === "collection" && collectionHandle) {
|
|
52
|
-
if (curation === null || curation === void 0 ? void 0 : curation.collectionHandle) {
|
|
53
|
-
const queries = [{
|
|
54
|
-
term: {
|
|
55
|
-
"curations.collectionHandle.keyword": curation.collectionHandle,
|
|
56
|
-
},
|
|
57
|
-
}];
|
|
58
|
-
if (args.market) {
|
|
59
|
-
queries.push({
|
|
60
|
-
term: {
|
|
61
|
-
"curations.markets.keyword": args.market,
|
|
62
|
-
},
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
sorts.push({
|
|
66
|
-
"curations.position": {
|
|
67
|
-
unmapped_type: "long",
|
|
68
|
-
order: "asc",
|
|
69
|
-
nested: {
|
|
70
|
-
path: "curations",
|
|
71
|
-
filter: {
|
|
72
|
-
bool: {
|
|
73
|
-
must: queries
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
// search curation pin sorting
|
|
82
|
-
if (mode === "search" || mode === "instant-search") {
|
|
83
|
-
if (curation === null || curation === void 0 ? void 0 : curation.searchTerm) {
|
|
84
|
-
const queries = [{
|
|
85
|
-
term: {
|
|
86
|
-
"curations.searchTerm.keyword": curation.searchTerm.toLowerCase(),
|
|
87
|
-
},
|
|
88
|
-
}];
|
|
89
|
-
if (args.market) {
|
|
90
|
-
queries.push({
|
|
91
|
-
term: {
|
|
92
|
-
"curations.markets.keyword": args.market,
|
|
93
|
-
},
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
sorts.push({
|
|
97
|
-
"curations.position": {
|
|
98
|
-
unmapped_type: "long",
|
|
99
|
-
order: "asc",
|
|
100
|
-
nested: {
|
|
101
|
-
path: "curations",
|
|
102
|
-
filter: {
|
|
103
|
-
bool: {
|
|
104
|
-
must: queries
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
// curation boost sorting
|
|
113
|
-
if (curation) {
|
|
114
|
-
if (0 < curation.boosting.groupings.length) {
|
|
115
|
-
const groupings = curation.boosting.groupings.sort((a, b) => a.position > b.position ? 1 : -1);
|
|
116
|
-
for (const grouping of groupings) {
|
|
117
|
-
try {
|
|
118
|
-
const query = JSON.parse(grouping.query);
|
|
119
|
-
if (query)
|
|
120
|
-
sorts.push(query);
|
|
121
|
-
}
|
|
122
|
-
catch (_a) {
|
|
123
|
-
console.error(`query could not be parsed for boost grouping`, grouping);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
if (0 < curation.boosting.sortings.length) {
|
|
128
|
-
const sortings = curation.boosting.sortings.sort((a, b) => a.position > b.position ? 1 : -1);
|
|
129
|
-
for (const sorting of sortings) {
|
|
130
|
-
try {
|
|
131
|
-
const query = JSON.parse(sorting.query);
|
|
132
|
-
if (query)
|
|
133
|
-
sorts.push(query);
|
|
134
|
-
}
|
|
135
|
-
catch (_b) {
|
|
136
|
-
console.error(`query could not be parsed for boost sorting`, sorting);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
// default collection sorting
|
|
142
|
-
if (mode === "collection" && collectionHandle) {
|
|
143
|
-
sorts.push(...mapCollectionPositionSortClause(collectionHandle));
|
|
144
|
-
}
|
|
145
|
-
// default search sorting
|
|
146
|
-
if (mode === "search" || mode === "instant-search") {
|
|
147
|
-
sorts.push("_score");
|
|
148
|
-
}
|
|
149
|
-
return sorts;
|
|
150
|
-
};
|
|
151
|
-
/**
|
|
152
|
-
* Return a sort clause which sorts by position within the given collection.
|
|
153
|
-
*/
|
|
154
|
-
function mapCollectionPositionSortClause(collectionHandle) {
|
|
155
|
-
return [
|
|
156
|
-
{
|
|
157
|
-
"collections.position": {
|
|
158
|
-
order: "asc",
|
|
159
|
-
nested: {
|
|
160
|
-
path: "collections",
|
|
161
|
-
filter: {
|
|
162
|
-
term: {
|
|
163
|
-
"collections.handle.keyword": collectionHandle,
|
|
164
|
-
},
|
|
165
|
-
},
|
|
166
|
-
},
|
|
167
|
-
},
|
|
168
|
-
},
|
|
169
|
-
];
|
|
170
|
-
}
|
|
171
|
-
const buildQuery = (args) => {
|
|
172
|
-
var _a;
|
|
173
|
-
const { curation, sortOption } = args;
|
|
174
|
-
if (!curation ||
|
|
175
|
-
curation.id.includes("global")) {
|
|
176
|
-
return undefined;
|
|
177
|
-
}
|
|
178
|
-
return {
|
|
179
|
-
bool: {
|
|
180
|
-
must_not: [
|
|
181
|
-
{
|
|
182
|
-
nested: {
|
|
183
|
-
path: "curations",
|
|
184
|
-
query: {
|
|
185
|
-
bool: {
|
|
186
|
-
must: [
|
|
187
|
-
{
|
|
188
|
-
term: {
|
|
189
|
-
[`curations.${"collection" === curation.type
|
|
190
|
-
? "collectionHandle"
|
|
191
|
-
: "searchTerm"}.keyword`]: "collection" === curation.type
|
|
192
|
-
? curation.collectionHandle
|
|
193
|
-
: (_a = curation.searchTerm) === null || _a === void 0 ? void 0 : _a.toLowerCase(),
|
|
194
|
-
},
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
term: {
|
|
198
|
-
"curations.hidden": true,
|
|
199
|
-
},
|
|
200
|
-
},
|
|
201
|
-
],
|
|
202
|
-
},
|
|
203
|
-
},
|
|
204
|
-
},
|
|
205
|
-
},
|
|
206
|
-
// hide callout when not sorting by _score or collections.position
|
|
207
|
-
...(sortOption &&
|
|
208
|
-
!["_score", "collections.position"].includes(sortOption.field)
|
|
209
|
-
? [
|
|
210
|
-
{
|
|
211
|
-
term: {
|
|
212
|
-
type: "callout",
|
|
213
|
-
},
|
|
214
|
-
},
|
|
215
|
-
]
|
|
216
|
-
: []),
|
|
217
|
-
],
|
|
218
|
-
},
|
|
219
|
-
};
|
|
220
|
-
};
|
|
221
28
|
//# sourceMappingURL=SensorSort.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SensorSort.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorSort.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport ReactiveComponent from \"@appbaseio/reactivesearch/lib/components/basic/ReactiveComponent\";\n\nimport { ConfigCuration, ConfigSort } from \"../../types\";\nimport {\n useReactifySearchContext,\n useSortBy,\n useCuration,\n ReactifySearchMode,\n useFlags,\n} from \"../../hooks\";\n\nexport const SensorSort: React.FC = () => {\n const flagsHook = useFlags();\n const { options, config } = useReactifySearchContext();\n const { curation } = useCuration();\n const { sortOption } = useSortBy();\n\n const { sort, query } = React.useMemo(() => {\n return {\n sort: buildSort({\n mode: options.mode,\n market: options.market,\n curation,\n sortOption,\n collectionHandle:\n options.mode === \"collection\" ? options.collectionHandle : undefined,\n }),\n query: buildQuery({\n sortOption,\n curation,\n }),\n };\n }, [options, config, sortOption, curation]);\n\n if (!flagsHook.flags[\"reactify-search:flag_sensor_sort\"]) {\n return null;\n }\n\n return (\n <ReactiveComponent\n componentId=\"SensorSort\"\n customQuery={() => ({\n sort,\n query,\n })}\n />\n );\n};\n\nconst buildSort = (args: {\n mode: ReactifySearchMode;\n market?: string;\n curation?: ConfigCuration;\n sortOption?: ConfigSort;\n collectionHandle?: string;\n}): any[] => {\n const { mode, curation, sortOption, collectionHandle } = args;\n\n // curation positions are only applied for the default `collections.position` or `_score` sort\n // if the sort is something else, apply a normal sort which applies what the user has requested\n if (mode !== \"instant-search\") {\n if (\n sortOption &&\n ![\"_score\", \"collections.position\"].includes(sortOption.field)\n ) {\n return [{ [sortOption.field]: sortOption.direction }];\n }\n }\n\n const sorts = [];\n\n // collection curation pin sorting\n if (mode === \"collection\" && collectionHandle) {\n if (curation?.collectionHandle) {\n const queries: Array<unknown> = [{\n term: {\n \"curations.collectionHandle.keyword\": curation.collectionHandle,\n },\n }];\n if (args.market) {\n queries.push({\n term: {\n \"curations.markets.keyword\": args.market,\n },\n });\n }\n sorts.push({\n \"curations.position\": {\n unmapped_type: \"long\",\n order: \"asc\",\n nested: {\n path: \"curations\",\n filter: {\n bool: {\n must: queries\n }\n }\n },\n },\n });\n }\n }\n\n // search curation pin sorting\n if (mode === \"search\" || mode === \"instant-search\") {\n if (curation?.searchTerm) {\n const queries: Array<unknown> = [{\n term: {\n \"curations.searchTerm.keyword\": curation.searchTerm.toLowerCase(),\n },\n }];\n if (args.market) {\n queries.push({\n term: {\n \"curations.markets.keyword\": args.market,\n },\n });\n }\n sorts.push({\n \"curations.position\": {\n unmapped_type: \"long\",\n order: \"asc\",\n nested: {\n path: \"curations\",\n filter: {\n bool: {\n must: queries\n }\n }\n },\n },\n });\n }\n }\n\n // curation boost sorting\n if (curation) {\n if (0 < curation.boosting.groupings.length) {\n const groupings = curation.boosting.groupings.sort((a, b) =>\n a.position > b.position ? 1 : -1\n );\n\n for (const grouping of groupings) {\n try {\n const query = JSON.parse(grouping.query);\n if (query) sorts.push(query);\n } catch {\n console.error(\n `query could not be parsed for boost grouping`,\n grouping\n );\n }\n }\n }\n\n if (0 < curation.boosting.sortings.length) {\n const sortings = curation.boosting.sortings.sort((a, b) =>\n a.position > b.position ? 1 : -1\n );\n\n for (const sorting of sortings) {\n try {\n const query = JSON.parse(sorting.query);\n if (query) sorts.push(query);\n } catch {\n console.error(`query could not be parsed for boost sorting`, sorting);\n }\n }\n }\n }\n\n // default collection sorting\n if (mode === \"collection\" && collectionHandle) {\n sorts.push(...mapCollectionPositionSortClause(collectionHandle));\n }\n\n // default search sorting\n if (mode === \"search\" || mode === \"instant-search\") {\n sorts.push(\"_score\");\n }\n\n return sorts;\n};\n\n/**\n * Return a sort clause which sorts by position within the given collection.\n */\nfunction mapCollectionPositionSortClause(collectionHandle: string) {\n return [\n {\n \"collections.position\": {\n order: \"asc\",\n nested: {\n path: \"collections\",\n filter: {\n term: {\n \"collections.handle.keyword\": collectionHandle,\n },\n },\n },\n },\n },\n ];\n}\n\nconst buildQuery = (args: {\n sortOption?: ConfigSort;\n curation?: ConfigCuration;\n}): Record<string, any> | undefined => {\n const { curation, sortOption } = args;\n\n if (\n !curation ||\n curation.id.includes(\"global\")\n ) {\n return undefined;\n }\n\n return {\n bool: {\n must_not: [\n {\n nested: {\n path: \"curations\",\n query: {\n bool: {\n must: [\n {\n term: {\n [`curations.${\n \"collection\" === curation.type\n ? \"collectionHandle\"\n : \"searchTerm\"\n }.keyword`]:\n \"collection\" === curation.type\n ? curation.collectionHandle\n : curation.searchTerm?.toLowerCase(),\n },\n },\n {\n term: {\n \"curations.hidden\": true,\n },\n },\n ],\n },\n },\n },\n },\n // hide callout when not sorting by _score or collections.position\n ...(sortOption &&\n ![\"_score\", \"collections.position\"].includes(sortOption.field)\n ? [\n {\n term: {\n type: \"callout\",\n },\n },\n ]\n : []),\n ],\n },\n };\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SensorSort.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorSort.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yHAAiG;AAEjG,uCAKqB;AACrB,+CAAyD;AAElD,MAAM,UAAU,GAAa,GAAG,EAAE;IACvC,MAAM,SAAS,GAAG,IAAA,gBAAQ,GAAE,CAAC;IAC7B,MAAM,qBAAqB,GAAG,IAAA,gCAAwB,GAAE,CAAC;IACzD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,iBAAS,GAAE,CAAC;IACnC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,iBAAS,GAAE,CAAC;IAEnC,MAAM,aAAa,GAAG,IAAA,0BAAkB,EAAC;QACvC,MAAM,EAAE,qBAAqB,CAAC,MAAM;QACpC,QAAQ,EAAE,qBAAqB,CAAC,OAAO;QACvC,UAAU,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM;QAC9B,UAAU,EAAE,UAAU;KACvB,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,kCAAkC,CAAC,EAAE;QACxD,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,8BAAC,2BAAiB,oBACZ,aAAa,EACjB,CACH,CAAC;AACJ,CAAC,CAAC;AAtBW,QAAA,UAAU,cAsBrB","sourcesContent":["import React from \"react\";\nimport ReactiveComponent from \"@appbaseio/reactivesearch/lib/components/basic/ReactiveComponent\";\n\nimport {\n useReactifySearchContext,\n useSortBy,\n useFlags,\n useSearch,\n} from \"../../hooks\";\nimport { getPropsSensorSort } from \"../../utility/props\";\n\nexport const SensorSort: React.FC = () => {\n const flagsHook = useFlags();\n const reactifySearchContext = useReactifySearchContext();\n const { sortOption } = useSortBy();\n const { searchTerm } = useSearch();\n\n const reactiveProps = getPropsSensorSort({\n config: reactifySearchContext.config,\n provider: reactifySearchContext.options,\n sortOption: sortOption?.handle,\n searchTerm: searchTerm,\n });\n\n if (!flagsHook.flags[\"reactify-search:flag_sensor_sort\"]) {\n return null;\n }\n\n return (\n <ReactiveComponent\n {...reactiveProps}\n />\n );\n};\n"]}
|
|
@@ -1,7 +1 @@
|
|
|
1
1
|
export * from "./useReactiveBaseProps";
|
|
2
|
-
export * from "./useReactiveFilterListProps";
|
|
3
|
-
export * from "./useReactiveFilterRangeProps";
|
|
4
|
-
export * from "./useReactiveFilterSliderProps";
|
|
5
|
-
export * from "./useReactiveFilterSharedProps";
|
|
6
|
-
export * from "./useReactiveReactProp";
|
|
7
|
-
export * from "./useReactiveReactiveListProps";
|
|
@@ -11,10 +11,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./useReactiveBaseProps"), exports);
|
|
14
|
-
__exportStar(require("./useReactiveFilterListProps"), exports);
|
|
15
|
-
__exportStar(require("./useReactiveFilterRangeProps"), exports);
|
|
16
|
-
__exportStar(require("./useReactiveFilterSliderProps"), exports);
|
|
17
|
-
__exportStar(require("./useReactiveFilterSharedProps"), exports);
|
|
18
|
-
__exportStar(require("./useReactiveReactProp"), exports);
|
|
19
|
-
__exportStar(require("./useReactiveReactiveListProps"), exports);
|
|
20
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/hooks/reactivesearch/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAuC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/hooks/reactivesearch/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAuC","sourcesContent":["export * from \"./useReactiveBaseProps\";\n"]}
|
|
@@ -10,7 +10,7 @@ const utility_1 = require("../utility");
|
|
|
10
10
|
const usePagination = (input) => {
|
|
11
11
|
const { track } = (0, hooks_1.useAnalytics)();
|
|
12
12
|
const buildPagePath = react_1.default.useCallback((page) => {
|
|
13
|
-
const currentPath = window.location.pathname;
|
|
13
|
+
const currentPath = typeof window !== "undefined" ? window.location.pathname : "";
|
|
14
14
|
return currentPath.includes("page=")
|
|
15
15
|
? currentPath.replace(/page=\d+/g, `page=${page}`)
|
|
16
16
|
: `${currentPath}${currentPath.includes("?") ? "&" : "?"}page=${page}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePagination.js","sourceRoot":"","sources":["../../../src/hooks/usePagination.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,oCAAwC;AACxC,wCAAmC;AAE5B,MAAM,aAAa,GAAG,CAC3B,KAAoC,EAsBpC,EAAE;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC;IAEjC,MAAM,aAAa,GAAG,eAAK,CAAC,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;QACvD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"usePagination.js","sourceRoot":"","sources":["../../../src/hooks/usePagination.ts"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n\nimport { ReactivesearchPaginationProps } from \"../types\";\nimport { useAnalytics } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nexport const usePagination = (\n input: ReactivesearchPaginationProps\n): {\n /** The current page number, indexed from 0 */\n currentPage: number;\n /** The total amount of pages */\n totalPages: number;\n /** The total amount of pages to show within pagination components */\n pagesToShow: Array<number>;\n /** If there is a next page */\n hasNextPage: boolean;\n /** If there is a previous page */\n hasPreviousPage: boolean;\n /** The _actual_ current page number, indexed from 1 */\n actualCurrentPage: number;\n /** Function to build a URL for a specific page number, useful for Href links */\n buildPagePath: (page: number) => string;\n /** Function to change to the next page, if an event is provided the preventDefault() method will be called */\n handleNextPage: (event?: React.SyntheticEvent) => void;\n /** Function to change to the previous page, if an event is provided the preventDefault() method will be called */\n handlePreviousPage: (event?: React.SyntheticEvent) => void;\n /** Function to change to any page, if an event is provided the preventDefault() method will be called */\n handlePageChange: (pageNumber: number, event?: React.SyntheticEvent) => void;\n} => {\n const { track } = useAnalytics();\n\n const buildPagePath = React.useCallback((page: number) => {\n const currentPath = typeof window !== \"undefined\" ? window.location.pathname : \"\";\n\n return currentPath.includes(\"page=\")\n ? currentPath.replace(/page=\\d+/g, `page=${page}`)\n : `${currentPath}${currentPath.includes(\"?\") ? \"&\" : \"?\"}page=${page}`;\n }, []);\n\n const pagesToShow = React.useMemo(\n () => getPages(input.pages, input.totalPages, input.currentPage),\n [input.pages, input.totalPages, input.currentPage]\n );\n\n // default input.currentPage is zero-indexed, actualCurrentPage is one-indexed\n const actualCurrentPage = React.useMemo(\n () => input.currentPage + 1,\n [input.currentPage]\n );\n\n const hasNextPage = React.useMemo(\n () => actualCurrentPage < input.totalPages,\n [actualCurrentPage, input.totalPages]\n );\n\n const hasPreviousPage = React.useMemo(\n () => actualCurrentPage > 1,\n [actualCurrentPage]\n );\n\n const hasPage = React.useCallback(\n (pageNumber: number) => {\n return pageNumber >= 0 && pageNumber < input.totalPages;\n },\n [input.totalPages]\n );\n\n const handlePageChange = React.useCallback<\n ReturnType<typeof usePagination>[\"handlePageChange\"]\n >(\n (pageNumber, event) => {\n debug.log(\"usePagination\", \"handlePageChange[pageNumber]\", pageNumber);\n event?.preventDefault();\n if (!hasPage(pageNumber)) {\n return;\n }\n input.setPage(pageNumber);\n track({\n eventName: \"paginationChange\",\n payload: {\n page: pageNumber,\n source: window.location.pathname.includes(\"/search\")\n ? \"search\"\n : \"collection\",\n },\n });\n },\n [input.setPage, track]\n );\n\n const handleNextPage = React.useCallback<\n ReturnType<typeof usePagination>[\"handleNextPage\"]\n >(\n (event) => {\n debug.log(\"usePagination\", \"handleNextPage\", input.currentPage + 1);\n handlePageChange(input.currentPage + 1, event);\n },\n [hasNextPage, input.currentPage, handlePageChange]\n );\n\n const handlePreviousPage = React.useCallback<\n ReturnType<typeof usePagination>[\"handlePreviousPage\"]\n >(\n (event) => {\n debug.log(\"usePagination\", \"handlePreviousPage\", input.currentPage - 1);\n handlePageChange(input.currentPage - 1, event);\n },\n [hasPreviousPage, input.currentPage, handlePageChange]\n );\n\n return React.useMemo(\n () => ({\n currentPage: input.currentPage,\n totalPages: input.totalPages,\n pagesToShow,\n hasNextPage,\n buildPagePath,\n hasPreviousPage,\n actualCurrentPage,\n handleNextPage,\n handlePreviousPage,\n handlePageChange,\n }),\n [\n input.currentPage,\n input.totalPages,\n pagesToShow,\n hasNextPage,\n buildPagePath,\n hasPreviousPage,\n actualCurrentPage,\n handleNextPage,\n handlePreviousPage,\n handlePageChange,\n ]\n );\n};\n\n// get a list of pages to display buttons for\n// @todo this is super hacky and needs to be cleaned up\nconst getPages = (pages: number, totalPages: number, currentPage: number) => {\n const pagesToShow = pages > totalPages ? totalPages : pages;\n const buffer = Math.floor(pagesToShow / 2);\n let list: number[] = [];\n let start = 0;\n if (totalPages <= 5 || currentPage < buffer + 1) {\n start = 0;\n } else {\n if (totalPages - buffer <= currentPage) {\n start =\n currentPage + 1 === totalPages\n ? currentPage - (pagesToShow - 1)\n : currentPage - (buffer + buffer / 2);\n } else {\n start = currentPage - buffer;\n }\n }\n Array.apply(null, Array(pagesToShow)).map((item, index) => {\n list.push(start + index);\n });\n return list;\n};\n"]}
|
|
@@ -7,32 +7,29 @@ exports.useSortBy = void 0;
|
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const hooks_1 = require("../hooks");
|
|
9
9
|
const utility_1 = require("../utility");
|
|
10
|
+
const sortOption_1 = require("../utility/sortOption");
|
|
10
11
|
const useSortBy = () => {
|
|
11
|
-
const
|
|
12
|
+
const reactifySearchContext = (0, hooks_1.useReactifySearchContext)();
|
|
12
13
|
const { track } = (0, hooks_1.useAnalytics)();
|
|
13
14
|
const sortOptions = react_1.default.useMemo(() => {
|
|
14
|
-
return
|
|
15
|
-
.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const bInt = typeof b.position === "string"
|
|
20
|
-
? parseInt(b.position, 10)
|
|
21
|
-
: b.position;
|
|
22
|
-
return aInt - bInt;
|
|
23
|
-
})
|
|
24
|
-
.filter(({ visibility }) => ["all", options.mode].includes(visibility));
|
|
25
|
-
}, [options.mode, config]);
|
|
15
|
+
return (0, sortOption_1.getSortOptions)({
|
|
16
|
+
provider: reactifySearchContext.options,
|
|
17
|
+
config: reactifySearchContext.config,
|
|
18
|
+
});
|
|
19
|
+
}, [reactifySearchContext.options, reactifySearchContext.config]);
|
|
26
20
|
const sortOption = react_1.default.useMemo(() => {
|
|
27
|
-
return (
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
return (0, sortOption_1.getSortOption)({
|
|
22
|
+
provider: reactifySearchContext.options,
|
|
23
|
+
config: reactifySearchContext.config,
|
|
24
|
+
sortOption: reactifySearchContext.sortby.sortOption,
|
|
25
|
+
});
|
|
26
|
+
}, [reactifySearchContext.options, reactifySearchContext.config, reactifySearchContext.sortby.sortOption]);
|
|
30
27
|
const setSortOption = react_1.default.useCallback((sortOptionHandle, ignoreHistoryState = false) => {
|
|
31
28
|
if (typeof window === "undefined") {
|
|
32
29
|
return;
|
|
33
30
|
}
|
|
34
31
|
utility_1.debug.log("useSortBy", "setSortOption[sortOptionHandle]", sortOptionHandle);
|
|
35
|
-
sortby.setSortOption(sortOptionHandle);
|
|
32
|
+
reactifySearchContext.sortby.setSortOption(sortOptionHandle);
|
|
36
33
|
if (!ignoreHistoryState) {
|
|
37
34
|
const url = new URL(window.location.href);
|
|
38
35
|
if (url.searchParams.has("sort")) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSortBy.js","sourceRoot":"","sources":["../../../src/hooks/useSortBy.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,oCAAkE;AAClE,wCAAmC;
|
|
1
|
+
{"version":3,"file":"useSortBy.js","sourceRoot":"","sources":["../../../src/hooks/useSortBy.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,oCAAkE;AAClE,wCAAmC;AACnC,sDAAsE;AAE/D,MAAM,SAAS,GAAG,GAUvB,EAAE;IACF,MAAM,qBAAqB,GAAG,IAAA,gCAAwB,GAAE,CAAC;IACzD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC;IAEjC,MAAM,WAAW,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,OAAO,IAAA,2BAAc,EAAC;YACpB,QAAQ,EAAE,qBAAqB,CAAC,OAAO;YACvC,MAAM,EAAE,qBAAqB,CAAC,MAAM;SACrC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACpC,OAAO,IAAA,0BAAa,EAAC;YACnB,QAAQ,EAAE,qBAAqB,CAAC,OAAO;YACvC,MAAM,EAAE,qBAAqB,CAAC,MAAM;YACpC,UAAU,EAAE,qBAAqB,CAAC,MAAM,CAAC,UAAU;SACpD,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAE3G,MAAM,aAAa,GAAG,eAAK,CAAC,WAAW,CACrC,CAAC,gBAAwB,EAAE,kBAAkB,GAAG,KAAK,EAAE,EAAE;QACvD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,OAAO;SACR;QAED,eAAK,CAAC,GAAG,CACP,WAAW,EACX,iCAAiC,EACjC,gBAAgB,CACjB,CAAC;QAEF,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAE7D,IAAI,CAAC,kBAAkB,EAAE;YACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAChC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;aAChD;iBAAM;gBACL,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;aACnD;YACD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SAClD;QAED,KAAK,CAAC;YACJ,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE;gBACP,IAAI,EAAE,gBAAgB;aACvB;SACF,CAAC,CAAC;IACL,CAAC,EACD,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC5D,CAAC;IAEF,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAClD,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IAEpD,OAAO;QACL,WAAW;QACX,UAAU;QACV,aAAa;KACd,CAAC;AACJ,CAAC,CAAC;AAvEW,QAAA,SAAS,aAuEpB","sourcesContent":["import React from \"react\";\n\nimport { ConfigSort } from \"../types\";\nimport { useAnalytics, useReactifySearchContext } from \"../hooks\";\nimport { debug } from \"../utility\";\nimport { getSortOption, getSortOptions } from \"../utility/sortOption\";\n\nexport const useSortBy = (): {\n /** The currently selected sort option */\n sortOption?: ConfigSort;\n /** All of the available sort options */\n sortOptions: Array<ConfigSort>;\n /** Function for changing the current sort option */\n setSortOption: (\n sortOptionHandle: string,\n ignoreHistoryState?: boolean\n ) => void;\n} => {\n const reactifySearchContext = useReactifySearchContext();\n const { track } = useAnalytics();\n\n const sortOptions = React.useMemo(() => {\n return getSortOptions({\n provider: reactifySearchContext.options,\n config: reactifySearchContext.config,\n });\n }, [reactifySearchContext.options, reactifySearchContext.config]);\n\n const sortOption = React.useMemo(() => {\n return getSortOption({\n provider: reactifySearchContext.options,\n config: reactifySearchContext.config,\n sortOption: reactifySearchContext.sortby.sortOption,\n })\n }, [reactifySearchContext.options, reactifySearchContext.config, reactifySearchContext.sortby.sortOption]);\n\n const setSortOption = React.useCallback(\n (sortOptionHandle: string, ignoreHistoryState = false) => {\n if (typeof window === \"undefined\") {\n return;\n }\n\n debug.log(\n \"useSortBy\",\n \"setSortOption[sortOptionHandle]\",\n sortOptionHandle\n );\n\n reactifySearchContext.sortby.setSortOption(sortOptionHandle);\n\n if (!ignoreHistoryState) {\n const url = new URL(window.location.href);\n if (url.searchParams.has(\"sort\")) {\n url.searchParams.set(\"sort\", sortOptionHandle);\n } else {\n url.searchParams.append(\"sort\", sortOptionHandle);\n }\n window.history.pushState({}, \"\", url.toString());\n }\n\n track({\n eventName: \"sortChange\",\n payload: {\n type: sortOptionHandle,\n },\n });\n },\n [typeof window === \"undefined\" ? \"\" : window.location.href]\n );\n\n debug.hook(\"useSortBy\", \"sortOption\", sortOption);\n debug.hook(\"useSortBy\", \"sortOptions\", sortOptions);\n\n return {\n sortOptions,\n sortOption,\n setSortOption,\n };\n};\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReactifySearchProviderProps } from "../components";
|
|
2
|
+
import { Config, ConfigCuration } from "../types";
|
|
3
|
+
export declare const getCuration: (options: {
|
|
4
|
+
provider: ReactifySearchProviderProps;
|
|
5
|
+
config: Config;
|
|
6
|
+
searchTerm?: string;
|
|
7
|
+
}) => ConfigCuration | undefined;
|