@usereactify/search 5.53.0-beta.3 → 5.54.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 +2 -2
- package/dist/src/components/ClearAll/ClearAll.d.ts +1 -1
- package/dist/src/components/ClearAll/ClearAll.js.map +1 -1
- package/dist/src/components/ClearAll/index.js +5 -1
- package/dist/src/components/ClearAll/index.js.map +1 -1
- package/dist/src/components/CustomComponent/CustomComponent.d.ts +1 -1
- package/dist/src/components/CustomComponent/index.js +5 -1
- package/dist/src/components/CustomComponent/index.js.map +1 -1
- package/dist/src/components/Example/ExampleClearAll.d.ts +1 -1
- package/dist/src/components/Example/ExampleFilterList.d.ts +1 -1
- package/dist/src/components/Example/ExampleFilterRange.d.ts +1 -1
- package/dist/src/components/Example/ExampleFilterSlider.d.ts +1 -1
- package/dist/src/components/Example/ExampleFiltersSelected.d.ts +1 -1
- package/dist/src/components/Example/ExampleHookUseResults.js.map +1 -1
- package/dist/src/components/Example/ExampleResultCardCallout.d.ts +1 -1
- package/dist/src/components/Example/ExampleResultCardProduct.d.ts +1 -1
- package/dist/src/components/Example/ExampleResultPaginationInfiniteScroll.d.ts +1 -1
- package/dist/src/components/Example/ExampleResultPaginationInfiniteScroll.js.map +1 -1
- package/dist/src/components/Example/ExampleResultPaginationLoadMore.d.ts +1 -1
- package/dist/src/components/Example/ExampleResultPaginationNextPrev.d.ts +1 -1
- package/dist/src/components/Example/ExampleResultPaginationNumbered.d.ts +1 -1
- package/dist/src/components/Example/ExampleSearch.d.ts +1 -1
- package/dist/src/components/Example/ExampleSortBy.d.ts +1 -1
- package/dist/src/components/Example/ExampleStats.d.ts +1 -1
- package/dist/src/components/Example/ExampleSuggestions.d.ts +1 -1
- package/dist/src/components/Example/index.js +5 -1
- package/dist/src/components/Example/index.js.map +1 -1
- package/dist/src/components/Filter/Filter.d.ts +1 -1
- package/dist/src/components/Filter/Filter.js.map +1 -1
- package/dist/src/components/Filter/Filters.d.ts +1 -1
- package/dist/src/components/Filter/FiltersSelected.d.ts +1 -1
- package/dist/src/components/Filter/FiltersSelected.js.map +1 -1
- package/dist/src/components/Filter/index.js +5 -1
- package/dist/src/components/Filter/index.js.map +1 -1
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.d.ts +1 -1
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js +5 -1
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js.map +1 -1
- package/dist/src/components/ReactifySearchProvider/index.js +5 -1
- package/dist/src/components/ReactifySearchProvider/index.js.map +1 -1
- package/dist/src/components/Result/ResultCardCallout.d.ts +1 -1
- package/dist/src/components/Result/ResultCardCallout.js.map +1 -1
- package/dist/src/components/Result/ResultCardProduct.d.ts +1 -1
- package/dist/src/components/Result/ResultCardProduct.js.map +1 -1
- package/dist/src/components/Result/ResultPaginationInfiniteScroll.d.ts +1 -1
- package/dist/src/components/Result/ResultPaginationLoadMore.d.ts +1 -1
- package/dist/src/components/Result/ResultPaginationNextPrev.d.ts +1 -1
- package/dist/src/components/Result/ResultPaginationNumbered.d.ts +1 -1
- package/dist/src/components/Result/ResultPaginationNumbered.js.map +1 -1
- package/dist/src/components/Result/ResultStateProvider.d.ts +1 -1
- package/dist/src/components/Result/Results.d.ts +2 -2
- package/dist/src/components/Result/Results.js.map +1 -1
- package/dist/src/components/Result/index.js +5 -1
- package/dist/src/components/Result/index.js.map +1 -1
- package/dist/src/components/Search/Search.d.ts +1 -1
- package/dist/src/components/Search/index.js +5 -1
- package/dist/src/components/Search/index.js.map +1 -1
- package/dist/src/components/Sensor/SensorCollection.js.map +1 -1
- package/dist/src/components/Sensor/SensorInventoryAvailable.js.map +1 -1
- package/dist/src/components/Sensor/SensorPublished.js.map +1 -1
- package/dist/src/components/Sensor/SensorSearchTerm.js.map +1 -1
- package/dist/src/components/Sensor/SensorSort.js.map +1 -1
- package/dist/src/components/Sensor/Sensors.d.ts +1 -1
- package/dist/src/components/Sensor/Sensors.js.map +1 -1
- package/dist/src/components/Sensor/index.js +5 -1
- package/dist/src/components/Sensor/index.js.map +1 -1
- package/dist/src/components/SortBy/SortBy.d.ts +1 -1
- package/dist/src/components/SortBy/index.js +5 -1
- package/dist/src/components/SortBy/index.js.map +1 -1
- package/dist/src/components/Stats/Stats.d.ts +1 -1
- package/dist/src/components/Stats/index.js +5 -1
- package/dist/src/components/Stats/index.js.map +1 -1
- package/dist/src/components/Suggestions/Suggestions.d.ts +1 -1
- package/dist/src/components/Suggestions/Suggestions.js.map +1 -1
- package/dist/src/components/Suggestions/index.js +5 -1
- package/dist/src/components/Suggestions/index.js.map +1 -1
- package/dist/src/components/Utility/UtilityAuthenticatedReactiveBase.d.ts +1 -1
- package/dist/src/components/Utility/index.js +5 -1
- package/dist/src/components/Utility/index.js.map +1 -1
- package/dist/src/components/index.js +5 -1
- package/dist/src/components/index.js.map +1 -1
- package/dist/src/hooks/index.js +5 -1
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/reactivesearch/index.js +5 -1
- package/dist/src/hooks/reactivesearch/index.js.map +1 -1
- package/dist/src/hooks/reactivesearch/useReactiveBaseProps.js.map +1 -1
- package/dist/src/hooks/useAnalytics.d.ts +1 -1
- package/dist/src/hooks/useAnalytics.js +2 -2
- package/dist/src/hooks/useAnalytics.js.map +1 -1
- package/dist/src/hooks/useConfig.d.ts +1 -1
- package/dist/src/hooks/useConfig.js.map +1 -1
- package/dist/src/hooks/useCuration.d.ts +1 -1
- package/dist/src/hooks/useCuration.js.map +1 -1
- package/dist/src/hooks/useFilterListProps.js.map +1 -1
- package/dist/src/hooks/useFilterRangeProps.js.map +1 -1
- package/dist/src/hooks/useFilters.d.ts +2 -2
- package/dist/src/hooks/useFilters.js.map +1 -1
- package/dist/src/hooks/useFlags.js +1 -1
- package/dist/src/hooks/useFlags.js.map +1 -1
- package/dist/src/hooks/useIndices.d.ts +1 -1
- package/dist/src/hooks/useIndices.js.map +1 -1
- package/dist/src/hooks/usePagination.d.ts +3 -3
- package/dist/src/hooks/usePagination.js.map +1 -1
- package/dist/src/hooks/usePaginationLoadable.js.map +1 -1
- package/dist/src/hooks/useProductPrice.js.map +1 -1
- package/dist/src/hooks/useReactifySearchContext.d.ts +21 -21
- package/dist/src/hooks/useResults.d.ts +1 -9
- package/dist/src/hooks/useSearch.d.ts +10 -3
- package/dist/src/hooks/useSearch.js +11 -5
- package/dist/src/hooks/useSearch.js.map +1 -1
- package/dist/src/hooks/useSortBy.d.ts +2 -2
- package/dist/src/hooks/useSortBy.js.map +1 -1
- package/dist/src/index.js +5 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/types/config.d.ts +10 -10
- package/dist/src/types/elastic.d.ts +6 -6
- package/dist/src/types/elastic.js +2 -2
- package/dist/src/types/elastic.js.map +1 -1
- package/dist/src/types/firestore.d.ts +6 -6
- package/dist/src/types/firestore.js +15 -15
- package/dist/src/types/firestore.js.map +1 -1
- package/dist/src/types/graphql.d.ts +3204 -3204
- package/dist/src/types/graphql.js +445 -445
- package/dist/src/types/graphql.js.map +1 -1
- package/dist/src/types/index.js +5 -1
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/shopify.d.ts +14 -14
- package/dist/src/types/shopify.js +7 -7
- package/dist/src/types/shopify.js.map +1 -1
- package/dist/src/utility/config.js.map +1 -1
- package/dist/src/utility/curation.js.map +1 -1
- package/dist/src/utility/debug.d.ts +1 -1
- package/dist/src/utility/debug.js.map +1 -1
- package/dist/src/utility/filters.js.map +1 -1
- package/dist/src/utility/index.js +5 -1
- package/dist/src/utility/index.js.map +1 -1
- package/dist/src/utility/liquid.js +3 -3
- package/dist/src/utility/liquid.js.map +1 -1
- package/dist/src/utility/props.d.ts +7 -8
- package/dist/src/utility/props.js +6 -6
- package/dist/src/utility/props.js.map +1 -1
- package/dist/src/utility/sortOption.js.map +1 -1
- package/package.json +2 -2
package/dist/src/hooks/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AAEjC,gDAA8B;AAC9B,8CAA4B;AAC5B,kDAAgC;AAChC,0DAAwC;AACxC,8CAA4B;AAC5B,gDAA8B;AAC9B,iDAA+B;AAC/B,+CAA6B;AAC7B,oDAAkC;AAClC,uDAAqC;AACrC,wDAAsC;AACtC,yDAAuC;AACvC,4DAA0C;AAC1C,8CAA4B;AAC5B,6DAA2C;AAC3C,+CAA6B;AAC7B,6CAA2B;AAC3B,+CAA6B","sourcesContent":["export * from \"./reactivesearch\";\n\nexport * from \"./useDebugger\";\nexport * from \"./useSortBy\";\nexport * from \"./usePagination\";\nexport * from \"./usePaginationLoadable\";\nexport * from \"./useSearch\";\nexport * from \"./useCuration\";\nexport * from \"./useAnalytics\";\nexport * from \"./useFilters\";\nexport * from \"./useProductPrice\";\nexport * from \"./useFilterListProps\";\nexport * from \"./useFilterRangeProps\";\nexport * from \"./useFilterSliderProps\";\nexport * from \"./useFilterCollapsedState\";\nexport * from \"./useConfig\";\nexport * from \"./useReactifySearchContext\";\nexport * from \"./useResults\";\nexport * from \"./useFlags\";\nexport * from \"./useIndices\";\n"]}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/hooks/reactivesearch/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/hooks/reactivesearch/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC","sourcesContent":["export * from \"./useReactiveBaseProps\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReactiveBaseProps.js","sourceRoot":"","sources":["../../../../src/hooks/reactivesearch/useReactiveBaseProps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,uCAAkE;AAGlE,+CAAmD;AAE5C,MAAM,yBAAyB,GAAG,CAAC,QAAa,EAAE,EAAE;IACzD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;SACrB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,WAAW,CAAC;SACtC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAgB,EAAE,EAAE;;QACvC,MAAA,KAAK,CAAC,OAAO,0CAAE,OAAO,CAAC,CAAC,MAAW,EAAE,EAAE;YACrC,IAAI,MAAM,CAAC,WAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"useReactiveBaseProps.js","sourceRoot":"","sources":["../../../../src/hooks/reactivesearch/useReactiveBaseProps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,uCAAkE;AAGlE,+CAAmD;AAE5C,MAAM,yBAAyB,GAAG,CAAC,QAAa,EAAE,EAAE;IACzD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;SACrB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,WAAW,CAAC;SACtC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAgB,EAAE,EAAE;;QACvC,MAAA,KAAK,CAAC,OAAO,0CAAE,OAAO,CAAC,CAAC,MAAW,EAAE,EAAE;YACrC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;gBAChD,OAAO,MAAM,CAAC,WAAW,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAbW,QAAA,yBAAyB,6BAapC;AAEK,MAAM,oBAAoB,GAAG,GAAsB,EAAE;;IAC1D,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAA,gCAAwB,GAAE,CAAC;IAEvD,MAAM,uBAAuB,GAAG,IAAA,oBAAY,EAAC;QAC3C,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,eAAK,CAAC,OAAO,CACrC,GAAG,EAAE;;QAAC,OAAA,iCACD,uBAAuB,KAC1B,YAAY,EAAE,MAAA,OAAO,CAAC,OAAO,0CAAE,KAAK,EACpC,OAAO,kCACF,uBAAuB,CAAC,OAAO,KAClC,eAAe,EAAE,IAAA,iBAAS,EAAC,QAAQ,CAAC,OAEtC,CAAA;KAAA,EACF,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,MAAA,OAAO,CAAC,OAAO,0CAAE,KAAK,CAAC,CAC7F,CAAC;IAEF,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAtBW,QAAA,oBAAoB,wBAsB/B","sourcesContent":["import React from \"react\";\nimport { ReactiveBaseProps } from \"@usereactify/search-internals/lib/components/basic/ReactiveBase\";\n\nimport { getCookie, useReactifySearchContext } from \"../../hooks\";\n\nimport pkg from \"../../../package.json\";\nimport { getPropsBase } from \"../../utility/props\";\n\nexport const replaceDocCountWithParent = (response: any) => {\n Object.entries(response)\n .filter(([key]) => key !== \"doc_count\")\n .forEach(([key, value]: [string, any]) => {\n value.buckets?.forEach((bucket: any) => {\n if (bucket.parent_docs) {\n bucket.doc_count = bucket.parent_docs.doc_count;\n delete bucket.parent_docs;\n }\n });\n });\n\n return response;\n};\n\nexport const useReactiveBaseProps = (): ReactiveBaseProps => {\n const { options, config } = useReactifySearchContext();\n \n const reactiveBasePropsShared = getPropsBase({\n provider: options,\n config: config,\n query: options.query,\n })\n\n const reactiveBaseProps = React.useMemo<ReactiveBaseProps>(\n () => ({\n ...reactiveBasePropsShared,\n initialState: options.preload?.state,\n headers: {\n ...reactiveBasePropsShared.headers,\n \"x-reactify-ga\": getCookie(\"_rs_ga\"),\n },\n }),\n [options.index, config.endpoint, options.credentials, options.theme, options.preload?.state]\n );\n\n return reactiveBaseProps;\n};\n"]}
|
|
@@ -2,7 +2,7 @@ export declare function getCookie(name: string): string;
|
|
|
2
2
|
export declare const useAnalytics: () => {
|
|
3
3
|
track: (event: TrackEvent) => Promise<import("axios").AxiosResponse<any, any> | undefined>;
|
|
4
4
|
};
|
|
5
|
-
export
|
|
5
|
+
export type TrackEvent = TrackEvent.SearchEvent | TrackEvent.ZeroResultsEvent | TrackEvent.ViewProductEvent | TrackEvent.ClickProductEvent | TrackEvent.ViewPromotionEvent | TrackEvent.ClickPromotionEvent | TrackEvent.PaginationChangeEvent | TrackEvent.SortChangeEvent | TrackEvent.FilterChangeEvent;
|
|
6
6
|
export declare namespace TrackEvent {
|
|
7
7
|
interface SearchEvent {
|
|
8
8
|
eventName: "search";
|
|
@@ -12,7 +12,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.useAnalytics =
|
|
15
|
+
exports.useAnalytics = void 0;
|
|
16
|
+
exports.getCookie = getCookie;
|
|
16
17
|
const axios_1 = __importDefault(require("axios"));
|
|
17
18
|
const package_json_1 = __importDefault(require("../../package.json"));
|
|
18
19
|
const hooks_1 = require("../hooks");
|
|
@@ -33,7 +34,6 @@ function getCookie(name) {
|
|
|
33
34
|
}
|
|
34
35
|
return "";
|
|
35
36
|
}
|
|
36
|
-
exports.getCookie = getCookie;
|
|
37
37
|
const useAnalytics = () => {
|
|
38
38
|
const { options } = (0, hooks_1.useReactifySearchContext)();
|
|
39
39
|
const track = (event) => __awaiter(void 0, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAnalytics.js","sourceRoot":"","sources":["../../../src/hooks/useAnalytics.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useAnalytics.js","sourceRoot":"","sources":["../../../src/hooks/useAnalytics.ts"],"names":[],"mappings":"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","sourcesContent":["import axios from \"axios\";\n\nimport pkg from \"../../package.json\";\n\nimport { useReactifySearchContext } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nexport function getCookie(name: string): string {\n try {\n if (typeof window === \"undefined\") {\n return \"\";\n }\n\n const cookie = `; ${document.cookie}`.split(`; ${name}=`);\n if (cookie.length === 2) {\n return cookie.pop()?.split(\";\").shift() ?? \"\";\n }\n } catch (error) {\n console.error(error);\n }\n\n return \"\";\n}\n\nexport const useAnalytics = () => {\n const { options } = useReactifySearchContext();\n const track = async (event: TrackEvent) => {\n if (!options.shopifyPermanentDomain) {\n console.warn(\n new Error(\n 'Unable to send tracking event, missing value for \"shopifyPermanentDomain\".'\n )\n );\n\n return;\n }\n\n debug.log(\"useAnalytics\", \"track\", event);\n\n const events = getTrackEvents(event);\n return axios.post(\n `https://analytics.usereactify.com/record/`,\n { events },\n {\n headers: {\n \"x-reactify-shop\": options.shopifyPermanentDomain,\n \"x-reactify-mode\": options.mode,\n \"x-reactify-client-id\": options.clientId,\n \"x-reactify-client-version\": pkg.version,\n \"x-reactify-ga\": getCookie(\"_rs_ga\"),\n },\n }\n );\n };\n\n return { track };\n};\n\nfunction getTrackEvents(event: TrackEvent): TrackEvent[] {\n const { eventName } = event;\n let events: TrackEvent[] = [];\n\n switch (eventName) {\n case \"search\":\n events = [\n {\n eventName,\n payload: {\n ...event.payload,\n searchTerm: event.payload.searchTerm.trim(),\n },\n },\n ];\n\n break;\n\n case \"zeroResults\":\n events = [\n {\n eventName,\n payload: {\n ...event.payload,\n searchTerm: event.payload.searchTerm.trim(),\n },\n },\n ];\n\n break;\n\n case \"viewProduct\":\n events = [\n {\n eventName,\n payload: event.payload,\n },\n ];\n\n break;\n\n case \"clickProduct\":\n events = [\n {\n eventName,\n payload: event.payload,\n },\n ];\n\n break;\n\n case \"viewPromotion\":\n events = [\n {\n eventName,\n payload: event.payload,\n },\n ];\n\n break;\n\n case \"clickPromotion\":\n events = [\n {\n eventName,\n payload: event.payload,\n },\n ];\n\n break;\n\n case \"paginationChange\":\n events = [\n {\n eventName,\n payload: event.payload,\n },\n ];\n\n break;\n\n case \"sortChange\":\n events = [\n {\n eventName,\n payload: event.payload,\n },\n ];\n\n break;\n\n case \"filterChange\":\n events = [\n {\n eventName,\n payload: event.payload,\n },\n ];\n\n break;\n }\n\n return events;\n}\n\nexport type TrackEvent =\n | TrackEvent.SearchEvent\n | TrackEvent.ZeroResultsEvent\n | TrackEvent.ViewProductEvent\n | TrackEvent.ClickProductEvent\n | TrackEvent.ViewPromotionEvent\n | TrackEvent.ClickPromotionEvent\n | TrackEvent.PaginationChangeEvent\n | TrackEvent.SortChangeEvent\n | TrackEvent.FilterChangeEvent;\n\nexport namespace TrackEvent {\n export interface SearchEvent {\n eventName: \"search\";\n payload: SearchEvent.Payload;\n }\n\n export namespace SearchEvent {\n export interface Payload {\n searchTerm: string;\n }\n }\n\n export interface ZeroResultsEvent {\n eventName: \"zeroResults\";\n payload: ZeroResultsEvent.Payload;\n }\n\n export namespace ZeroResultsEvent {\n export interface Payload {\n searchTerm: string;\n }\n }\n\n export interface ViewProductEvent {\n eventName: \"viewProduct\";\n payload: ViewProductEvent.Payload;\n }\n\n export namespace ViewProductEvent {\n export interface Payload {\n elasticProduct: ElasticProduct;\n }\n }\n\n export interface ClickProductEvent {\n eventName: \"clickProduct\";\n payload: ClickProductEvent.Payload;\n }\n\n export namespace ClickProductEvent {\n export interface Payload {\n elasticProduct: ElasticProduct;\n }\n }\n\n export interface ViewPromotionEvent {\n eventName: \"viewPromotion\";\n payload: ViewPromotionEvent.Payload;\n }\n\n export namespace ViewPromotionEvent {\n export interface Payload {\n link: string;\n title: string;\n }\n }\n\n export interface ClickPromotionEvent {\n eventName: \"clickPromotion\";\n payload: ClickPromotionEvent.Payload;\n }\n\n export namespace ClickPromotionEvent {\n export interface Payload {\n link: string;\n title: string;\n }\n }\n\n export interface PaginationChangeEvent {\n eventName: \"paginationChange\";\n payload: PaginationChangeEvent.Payload;\n }\n\n export namespace PaginationChangeEvent {\n export interface Payload {\n page: number;\n source: \"search\" | \"collection\";\n }\n }\n\n export interface SortChangeEvent {\n eventName: \"sortChange\";\n payload: SortChangeEvent.Payload;\n }\n\n export namespace SortChangeEvent {\n export interface Payload {\n type: string;\n }\n }\n\n export interface FilterChangeEvent {\n eventName: \"filterChange\";\n payload: FilterChangeEvent.Payload;\n }\n\n export namespace FilterChangeEvent {\n export interface Payload {\n name: string;\n value: string;\n }\n }\n\n export interface ElasticProduct {\n id: number;\n title: string;\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Config } from "../types/config";
|
|
2
|
-
export declare const useConfig: (shopifyPermanentDomain: string, preloadedConfig?: Config
|
|
2
|
+
export declare const useConfig: (shopifyPermanentDomain: string, preloadedConfig?: Config) => {
|
|
3
3
|
config: Config | undefined;
|
|
4
4
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useConfig.js","sourceRoot":"","sources":["../../../src/hooks/useConfig.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAG1B,wCAAmC;AAE5B,MAAM,SAAS,GAAG,CACvB,sBAA8B,EAC9B,eAAwB,EAGxB,EAAE;IACF,2EAA2E;IAC3E,MAAM,YAAY,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;;QACtC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"useConfig.js","sourceRoot":"","sources":["../../../src/hooks/useConfig.ts"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n\nimport { Config } from \"../types/config\";\nimport { debug } from \"../utility\";\n\nexport const useConfig = (\n shopifyPermanentDomain: string,\n preloadedConfig?: Config\n): {\n config: Config | undefined;\n} => {\n // synchronously returns cached and non-expired config from session storage\n const cachedConfig = React.useMemo(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n debug.log(\"useConfig\", \"checking config cache\");\n\n const sessionConfig: {\n config: Config;\n } | null = JSON.parse(\n window.sessionStorage.getItem(\"reactify-search:config\") ?? \"null\"\n );\n\n if (sessionConfig) {\n if (sessionConfig.config.cache?.enabled === false) {\n debug.log(\"useConfig\", `cache disabled, ignoring cached config`);\n return;\n }\n\n debug.log(\"useConfig\", `cache enabled, using cached config`);\n\n return sessionConfig.config;\n } else {\n debug.log(\"useConfig\", `cached config missing`);\n }\n\n return;\n }, []);\n\n const [config, setConfig] = React.useState<Config | undefined>(cachedConfig);\n\n React.useEffect(() => {\n (async () => {\n debug.log(\"useConfig\", \"loading fresh config\");\n const searchParams = new URLSearchParams();\n searchParams.set(\"shop\", shopifyPermanentDomain);\n\n let json: any;\n\n try {\n json = await fetch(\n `https://config.usereactify.com/?${searchParams.toString()}`\n ).then((response) => response.json());\n \n } catch (error) {\n debug.log(\"useConfig\", \"error loading config, retrying...\");\n\n json = await fetch(\n `https://config.usereactify.com/?${searchParams.toString()}`\n ).then((response) => response.json());\n }\n\n setConfig(json.body);\n\n debug.log(\"useConfig\", \"loaded fresh config\");\n\n window.sessionStorage.setItem(\n \"reactify-search:config\",\n JSON.stringify({\n config: json.body,\n })\n );\n })();\n }, [shopifyPermanentDomain]);\n\n React.useEffect(() => {\n debug.log(\"useConfig\", \"config\", config);\n }, [config]);\n\n return {\n config: config ?? preloadedConfig,\n };\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCuration.js","sourceRoot":"","sources":["../../../src/hooks/useCuration.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,oCAA+D;AAC/D,wCAAmC;AAE5B,MAAM,WAAW,GAAG,GAEzB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAA,gCAAwB,GAAE,CAAC;IACvD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,iBAAS,GAAE,CAAC;IAEnC,MAAM,QAAQ,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,kBAAkB,GACtB,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC;QAExE,MAAM,4BAA4B,GAAG,kBAAkB;aACpD,WAAW,EAAE;aACb,IAAI,EAAE,CAAC;QAEV,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"useCuration.js","sourceRoot":"","sources":["../../../src/hooks/useCuration.ts"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n\nimport { ConfigCuration } from \"../types\";\nimport { useReactifySearchContext, useSearch } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nexport const useCuration = (): {\n curation?: ConfigCuration;\n} => {\n const { options, config } = useReactifySearchContext();\n const { searchTerm } = useSearch();\n\n const curation = React.useMemo(() => {\n const handleOrSearchTerm =\n options.mode === \"collection\" ? options.collectionHandle : searchTerm;\n\n const normalisedHandleOrSearchTerm = handleOrSearchTerm\n .toLowerCase()\n .trim();\n\n const globalCuration = config.curations.find((curation) => {\n if (options.mode === \"search\") {\n if (options.market) {\n return curation.id === `global_${options.market}_search`;\n } else {\n return curation.id === \"global_search\";\n }\n }\n if (options.mode === \"instant-search\") {\n if (options.market) {\n return curation.id === `global_${options.market}_search`;\n } else {\n return curation.id === \"global_search\";\n }\n }\n if (options.mode === \"collection\") {\n if (options.market) {\n return curation.id === `global_${options.market}_collection`;\n } else {\n return curation.id === \"global_collection\";\n }\n }\n return false;\n });\n\n const curation = config.curations.find((curation) => {\n if (options.market) {\n if (curation.markets && !curation.markets.includes(options.market)) {\n return false;\n }\n }\n\n const normalisedSearchTerm = curation.searchTerm?.toLowerCase().trim();\n const normalisedCollectionHandle = curation.collectionHandle\n ?.toLowerCase()\n .trim();\n\n if (\"instant-search\" === options.mode) {\n return (\n \"search\" === curation.type &&\n normalisedHandleOrSearchTerm === normalisedSearchTerm\n );\n }\n\n if (\"search\" === options.mode) {\n return (\n \"search\" === curation.type &&\n normalisedHandleOrSearchTerm === normalisedSearchTerm\n );\n }\n\n if (\"collection\" === options.mode) {\n return (\n \"collection\" === curation.type &&\n normalisedHandleOrSearchTerm === normalisedCollectionHandle\n );\n }\n\n return false;\n });\n\n const addGlobalBoosting = (curation: ConfigCuration) => {\n if (!globalCuration) {\n return curation;\n }\n\n const curationIsCollection = curation.type === \"collection\";\n if (!curationIsCollection) {\n return curation;\n }\n\n const curationHasRules =\n !!curation.boosting.groupings.length ||\n !!curation.boosting.sortings.length;\n\n if (curationHasRules) {\n return curation;\n }\n\n const curationWithGlobalBoosting = {\n ...curation,\n boosting: globalCuration.boosting,\n } as ConfigCuration;\n\n return curationWithGlobalBoosting;\n };\n\n return curation\n ? addGlobalBoosting(curation)\n : globalCuration\n ? globalCuration\n : undefined;\n }, [\n config,\n options.mode === \"collection\" ? options.collectionHandle : undefined,\n searchTerm,\n ]);\n\n React.useEffect(() => {\n debug.log(\"useCuration\", \"curation\", curation);\n }, [curation]);\n\n return {\n curation: curation,\n };\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFilterListProps.js","sourceRoot":"","sources":["../../../src/hooks/useFilterListProps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAI1B,oCAAmE;AACnE,wCAAmC;AAEnC,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACxD,MAAM,yBAAyB,GAAG;IAChC,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,MAAM;IACN,YAAY;IACZ,MAAM;IACN,KAAK;IACL,IAAI;IACJ,MAAM;IACN,GAAG;IACH,IAAI;IACJ,KAAK;IACL,GAAG;IACH,IAAI;IACJ,KAAK;IACL,GAAG;IACH,KAAK;IACL,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,SAAS;CACV,CAAC;AAEF,qFAAqF;AAC9E,MAAM,kBAAkB,GAAG,CAChC,MAAyB,EACzB,yBAAwD,EAWxD,EAAE;;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC;IAEjC,MAAM,YAAY,GAAG,eAAK,CAAC,WAAW,CACpC,CAAC,GAAW,EAAE,EAAE;QACd,eAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;QAE1D,yBAAyB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC5C,KAAK,CAAC;YACJ,SAAS,EAAE,cAAc;YACzB,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,GAAG;aACX;SACF,CAAC,CAAC;IACL,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,MAAM,eAAe,GAAG,MAAA,MAAM,CAAC,eAAe,0CAC1C,KAAK,CAAC,GAAG,EACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAE5C,MAAM,eAAe,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;;QACzC,IAAI,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC;QAC1C,IACE,MAAA,MAAA,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,OAAO,0CAAE,YAAY,0CAAE,qBAAqB,0CAAE,qBAAqB,EAC9F;
|
|
1
|
+
{"version":3,"file":"useFilterListProps.js","sourceRoot":"","sources":["../../../src/hooks/useFilterListProps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAI1B,oCAAmE;AACnE,wCAAmC;AAEnC,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;AACxD,MAAM,yBAAyB,GAAG;IAChC,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,MAAM;IACN,YAAY;IACZ,MAAM;IACN,KAAK;IACL,IAAI;IACJ,MAAM;IACN,GAAG;IACH,IAAI;IACJ,KAAK;IACL,GAAG;IACH,IAAI;IACJ,KAAK;IACL,GAAG;IACH,KAAK;IACL,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,SAAS;CACV,CAAC;AAEF,qFAAqF;AAC9E,MAAM,kBAAkB,GAAG,CAChC,MAAyB,EACzB,yBAAwD,EAWxD,EAAE;;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC;IAEjC,MAAM,YAAY,GAAG,eAAK,CAAC,WAAW,CACpC,CAAC,GAAW,EAAE,EAAE;QACd,eAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;QAE1D,yBAAyB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC5C,KAAK,CAAC;YACJ,SAAS,EAAE,cAAc;YACzB,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,GAAG;aACX;SACF,CAAC,CAAC;IACL,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,MAAM,eAAe,GAAG,MAAA,MAAM,CAAC,eAAe,0CAC1C,KAAK,CAAC,GAAG,EACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAE5C,MAAM,eAAe,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;;QACzC,IAAI,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC;QAC1C,IACE,MAAA,MAAA,MAAA,yBAAyB,aAAzB,yBAAyB,uBAAzB,yBAAyB,CAAE,OAAO,0CAAE,YAAY,0CAAE,qBAAqB,0CAAE,qBAAqB,EAC9F,CAAC;YACD,MAAM,aAAa,GAAG,IAAA,iCAAyB,EAAC,yBAAyB,CAAC,OAAO,CAAC,YAAY,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;YAC5I,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC;YACvF,IAAI,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACpD,CAAC;QAED,mEAAmE;QACnE,MAAM,OAAO,GAAG,IAAI;aACjB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;;YAClB,IAAI,MAAA,MAAM,CAAC,aAAa,0CAAE,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YACtD,IAAI,CAAC,CAAC,CAAA,MAAA,MAAM,CAAC,YAAY,0CAAE,MAAM,CAAA,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACrE,OAAO,KAAK,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YACnC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CACtC;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACb,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CACrE,CAAC,CAAC,GAAG,EACL,CAAC,CAAC,GAAG,CACN,CACF;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrD,OAAO,CACL,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACtD,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CACvD,CAAC;YACJ,CAAC;YAED,OAAO,CACL,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;iBAC7C,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA,CAC9C,CAAC;QACJ,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iCACZ,MAAM,KACT,KAAK,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EACvE,OAAO,EACL,CAAC,OAAO,yBAAyB,CAAC,KAAK,KAAK,QAAQ;gBAClD,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC9C,yBAAyB,CAAC,KAAK,KAAK,MAAM,CAAC,GAAG,IAChD,CAAC,CAAC;QAEN,2CAA2C;QAC3C,MAAM,WAAW,GACf,CAAC,OAAO,yBAAyB,CAAC,KAAK,KAAK,QAAQ;YAClD,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YAC1D,CAAC,OAAO,yBAAyB,CAAC,KAAK,KAAK,QAAQ;gBAClD,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAExE,uCACK,yBAAyB,KAC5B,YAAY;YACZ,MAAM;YACN,OAAO;YACP,WAAW;YACX,aAAa,IACb;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAEtD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AA3GW,QAAA,kBAAkB,sBA2G7B","sourcesContent":["import React from \"react\";\n\nimport { ConfigFilterFacet } from \"../types/config\";\nimport { ReactivesearchFilterListProps } from \"../types/reactivesearch\";\nimport { replaceDocCountWithParent, useAnalytics } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nconst DEFAULT_NUMERIC_SORT = [\"0000\", \"000\", \"00\", \"0\"];\nconst DEFAULT_ALPHABETICAL_SORT = [\n \"SINGLE\",\n \"DOUBLE\",\n \"QUEEN\",\n \"KING\",\n \"SUPER KING\",\n \"XXXS\",\n \"XXS\",\n \"XS\",\n \"XS/S\",\n \"S\",\n \"SM\",\n \"S/M\",\n \"M\",\n \"ML\",\n \"M/L\",\n \"L\",\n \"LXL\",\n \"L/XL\",\n \"XL\",\n \"2L\",\n \"XXL\",\n \"3L\",\n \"XXXL\",\n \"4L\",\n \"5L\",\n \"6L\",\n \"OS\",\n \"ONESIZE\",\n];\n\n// converts reactivesearch props returned in filters to a cleaned up/filtered version\nexport const useFilterListProps = (\n filter: ConfigFilterFacet,\n reactivesearchFilterProps: ReactivesearchFilterListProps\n): ReactivesearchFilterListProps & {\n filter: ConfigFilterFacet;\n options: Array<{\n doc_count: number;\n key: string;\n label: string;\n checked: boolean;\n }>;\n hasSelected: boolean;\n totalSelected: number;\n} => {\n const { track } = useAnalytics();\n\n const handleChange = React.useCallback(\n (key: string) => {\n debug.log(\"useFilterListProps\", \"handleChange[key]\", key);\n\n reactivesearchFilterProps.handleChange(key);\n track({\n eventName: \"filterChange\",\n payload: {\n name: filter.name,\n value: key,\n },\n });\n },\n [filter]\n );\n\n const customSortOrder = filter.customSortOrder\n ?.split(\",\")\n .map((item) => item.trim().toUpperCase());\n\n const filterListProps = React.useMemo(() => {\n let data = reactivesearchFilterProps.data;\n if (\n reactivesearchFilterProps?.rawData?.aggregations?.reactivesearch_nested?.reactify_nested_outer\n ) {\n const nestedOptions = replaceDocCountWithParent(reactivesearchFilterProps.rawData.aggregations.reactivesearch_nested.reactify_nested_outer);\n const nestedOptionsKey = Object.keys(nestedOptions).filter(key => key !== \"doc_count\");\n data = nestedOptions[nestedOptionsKey[0]].buckets;\n }\n\n // remove excluded options, sort alphabeticaly, map checked boolean\n const options = data\n .filter(({ key }) => {\n if (filter.valuesExclude?.includes(key)) return false;\n if (!!filter.valuesManual?.length && !filter.valuesManual.includes(key))\n return false;\n return true;\n })\n .sort(\n (a, b) =>\n DEFAULT_NUMERIC_SORT.indexOf(a.key) -\n DEFAULT_NUMERIC_SORT.indexOf(b.key)\n )\n .sort((a, b) =>\n new Intl.Collator(\"en\", { numeric: true, sensitivity: \"base\" }).compare(\n a.key,\n b.key\n )\n )\n .sort((a, b) => {\n if (!customSortOrder || customSortOrder.length === 0) {\n return (\n DEFAULT_ALPHABETICAL_SORT.indexOf(a.key.toUpperCase()) -\n DEFAULT_ALPHABETICAL_SORT.indexOf(b.key.toUpperCase())\n );\n }\n\n return (\n customSortOrder?.indexOf(a.key.toUpperCase()) -\n customSortOrder?.indexOf(b.key.toUpperCase())\n );\n })\n .map((option) => ({\n ...option,\n label: filter.settingsUppercase ? option.key.toUpperCase() : option.key,\n checked:\n (typeof reactivesearchFilterProps.value === \"object\" &&\n reactivesearchFilterProps.value[option.key]) ||\n reactivesearchFilterProps.value === option.key,\n }));\n\n // work out if at least one option selected\n const hasSelected =\n (typeof reactivesearchFilterProps.value === \"object\" &&\n 0 < Object.keys(reactivesearchFilterProps.value).length) ||\n (typeof reactivesearchFilterProps.value !== \"object\" &&\n !!reactivesearchFilterProps.value);\n\n const totalSelected = options.filter((option) => option.checked).length;\n\n return {\n ...reactivesearchFilterProps,\n handleChange,\n filter,\n options,\n hasSelected,\n totalSelected,\n };\n }, [filter, handleChange, reactivesearchFilterProps]);\n\n return filterListProps;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFilterRangeProps.js","sourceRoot":"","sources":["../../../src/hooks/useFilterRangeProps.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,oCAAwC;AACxC,wCAAmC;AAE5B,MAAM,mBAAmB,GAAG,CACjC,MAAyB,EAWzB,EAAE;IACF,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC;IACjC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAW,EAAE,CAAC,CAAC;IAErE,MAAM,YAAY,GAAG,eAAK,CAAC,WAAW,CACpC,CAAC,GAAW,EAAE,EAAE;QACd,eAAK,CAAC,GAAG,CAAC,0BAA0B,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;QAEhE,IAAI,MAAM,CAAC,WAAW,KAAK,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"useFilterRangeProps.js","sourceRoot":"","sources":["../../../src/hooks/useFilterRangeProps.ts"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n\nimport { ConfigFilterFacet } from \"../types/config\";\nimport { useAnalytics } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nexport const useFilterRangeProps = (\n filter: ConfigFilterFacet\n): {\n filter: ConfigFilterFacet;\n options: Array<{\n key: string;\n label: string;\n checked: boolean;\n }>;\n values: string[];\n handleChange: (key: string) => void;\n handleClear: () => void;\n} => {\n const { track } = useAnalytics();\n const [filterValues, setFilterValues] = React.useState<string[]>([]);\n\n const handleChange = React.useCallback(\n (key: string) => {\n debug.log(\"useFilterRangeMultiProps\", \"handleChange[key]\", key);\n\n if (filter.displayType === \"multi\") {\n const selected = filterValues.find((item: string) => item === key)\n ? filterValues.filter((value) => value !== key)\n : [...filterValues, key];\n\n setFilterValues(selected);\n }\n if (filter.displayType === \"single\") {\n setFilterValues([key]);\n }\n\n track({\n eventName: \"filterChange\",\n payload: {\n name: filter.name,\n value: key,\n },\n });\n },\n [filter, filterValues]\n );\n\n const handleClear = React.useCallback(() => {\n setFilterValues([]);\n }, []);\n\n React.useEffect(() => {\n try {\n if (filter.displayView === \"range\") {\n const url = new URL(window.location.href);\n const value = JSON.parse(url.searchParams.get(filter.handle) ?? \"[]\");\n setFilterValues(value);\n }\n } catch (error) {\n console.error(error);\n }\n }, []);\n\n React.useEffect(() => {\n const handler = (\n event: CustomEvent<{ handle: string; value: Array<string> }>\n ) => {\n setFilterValues(event.detail.value);\n };\n window.addEventListener(\n `@usereactify/search:filter:${filter.handle}:update`,\n handler as EventListener\n );\n\n return () =>\n window.removeEventListener(\n `@usereactify/search:filter:${filter.handle}:update`,\n handler as EventListener\n );\n }, []);\n\n const filterRangeProps = React.useMemo(() => {\n const options =\n filter.displayRangeOptions?.map((option) => {\n const [key] = option.split(\":\");\n return {\n key: key,\n label: filter.settingsUppercase ? key.toUpperCase() : key,\n checked: filterValues.includes(key),\n };\n }) ?? [];\n\n return {\n handleChange,\n handleClear,\n filter,\n values: filterValues,\n options,\n };\n }, [filter, filterValues, handleChange]);\n\n return filterRangeProps;\n};\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ConfigFilter, ConfigFilterFacet } from "../types";
|
|
2
2
|
export declare const useFilters: () => {
|
|
3
3
|
/** The currently selected filter stack, based on mode, curation and more */
|
|
4
|
-
filterStack?: ConfigFilter
|
|
4
|
+
filterStack?: ConfigFilter;
|
|
5
5
|
/** All of the available filters within the filter stack */
|
|
6
|
-
filters?: ConfigFilterFacet
|
|
6
|
+
filters?: Array<ConfigFilterFacet>;
|
|
7
7
|
/** All of the selected filters with their value */
|
|
8
8
|
selected: Array<{
|
|
9
9
|
handle: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFilters.js","sourceRoot":"","sources":["../../../src/hooks/useFilters.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,iCAAiC;AACjC,mEAA4E;AAC5E,iCAAiC;AACjC,iEAA+D;AAG/D,oCAAoD;AACpD,wCAAmC;AAE5B,MAAM,UAAU,GAAG,GAmBxB,EAAE;;IACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAA,gCAAwB,GAAE,CAAC;IACvD,MAAM,qBAAqB,GAAG,eAAK,CAAC,UAAU,CAAM,yBAAiB,CAAC,CAAC;IAEvE,MAAM,WAAW,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,yBAAyB;QACzB,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAC5C,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CACzC,CAAC;QAEF,4CAA4C;QAC5C,IAAI,OAAO,CAAC,aAAa,EAAE;
|
|
1
|
+
{"version":3,"file":"useFilters.js","sourceRoot":"","sources":["../../../src/hooks/useFilters.ts"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n// @ts-expect-error missing types\nimport { ReactReduxContext } from \"@usereactify/search-internals/lib/utils\";\n// @ts-expect-error missing types\nimport { setValue } from \"@appbaseio/reactivecore/lib/actions\";\n\nimport { ConfigFilter, ConfigFilterFacet } from \"../types\";\nimport { useReactifySearchContext } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nexport const useFilters = (): {\n /** The currently selected filter stack, based on mode, curation and more */\n filterStack?: ConfigFilter;\n /** All of the available filters within the filter stack */\n filters?: Array<ConfigFilterFacet>;\n /** All of the selected filters with their value */\n selected: Array<{\n handle: string;\n value: string | Array<string> | Array<{\n label: string;\n start: number;\n end: number;\n }>;\n }>;\n /** Clear filter by handle */\n setFilterValue: (\n handle: string,\n value: string | Array<string> | [number, number]\n ) => void;\n} => {\n const { options, config } = useReactifySearchContext();\n const reactivesearchContext = React.useContext<any>(ReactReduxContext);\n\n const filterStack = React.useMemo(() => {\n // select filters by type\n const matchingFilterss = config.filters.filter(\n (filter) => filter.type === options.mode\n );\n\n // select filter stack by handle if provided\n if (options.filtersHandle) {\n const matchingFilters = matchingFilterss.find(\n (filterStack) => options.filtersHandle === filterStack.handle\n );\n if (matchingFilters) {\n return matchingFilters;\n }\n }\n\n // select filter stack by collection if provided\n if (options.mode === \"collection\" && options.collectionHandle) {\n const matchingFilters = matchingFilterss.find((filterStack) =>\n filterStack.collections?.includes(options.collectionHandle)\n );\n if (matchingFilters) {\n return matchingFilters;\n }\n }\n\n // select filter with \"default\" handle\n let matchingFilters = matchingFilterss.find(\n (filterStack) => filterStack.handle === \"default\"\n );\n if (matchingFilters) {\n return matchingFilters;\n }\n\n // select any filter with \"default\" handle\n matchingFilters = config.filters.find(\n (filterStack) => filterStack.handle === \"default\"\n );\n if (matchingFilters) {\n return matchingFilters;\n }\n\n // select any available filter as a last resort\n matchingFilters = config.filters[0];\n\n return matchingFilters;\n }, [\n config,\n options.mode === \"collection\" ? options.collectionHandle : undefined,\n ]);\n\n const filters = React.useMemo(() => {\n const sortedFilters = filterStack?.options.sort((a, b) =>\n a.position > b.position ? 1 : -1\n );\n\n return sortedFilters;\n }, [filterStack]);\n\n const selected = React.useMemo(() => {\n return Object.keys(reactivesearchContext.storeState.selectedValues)\n .filter((item) => filters.find((filter) => filter.handle === item))\n .map((item) => ({\n handle: item,\n value: reactivesearchContext.storeState.selectedValues[item].value,\n }));\n }, [filters, reactivesearchContext?.storeState?.selectedValues]);\n\n const setFilterValue = React.useCallback(\n (\n handle: string,\n value: string | Array<string> | [number, number]\n ): void => {\n debug.log(\"useFilters\", \"setFilterValue[handle,value]\", handle, value);\n reactivesearchContext.store.dispatch(setValue(handle, value));\n },\n [reactivesearchContext]\n );\n\n debug.hook(\"useFilters\", \"filterStack\", filterStack);\n debug.hook(\"useFilters\", \"filters\", filters);\n debug.hook(\"useFilters\", \"selected\", selected);\n\n return {\n filterStack: filterStack,\n filters: filters,\n selected: selected,\n setFilterValue: setFilterValue,\n };\n};\n"]}
|
|
@@ -23,7 +23,7 @@ var Flags;
|
|
|
23
23
|
Flags["SENSOR_SEARCHTERM_CROSS_FIELDS_SYNONYMS"] = "reactify-search:flag_sensor_searchterm_cross_fields_synonyms";
|
|
24
24
|
Flags["SENSOR_SEARCHTERM_SPAN_FIRST"] = "reactify-search:flag_sensor_searchterm_span_first";
|
|
25
25
|
Flags["SENSOR_SEARCHTERM_SPAN_FIRST_SYNONYMS"] = "reactify-search:flag_sensor_searchterm_span_first_synonyms";
|
|
26
|
-
})(Flags
|
|
26
|
+
})(Flags || (exports.Flags = Flags = {}));
|
|
27
27
|
const useFlags = () => {
|
|
28
28
|
const { options } = (0, useReactifySearchContext_1.useReactifySearchContext)();
|
|
29
29
|
const [delta, setDelta] = react_1.default.useState(Date.now());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFlags.js","sourceRoot":"","sources":["../../../src/hooks/useFlags.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yEAAsE;AACtE,wCAAmC;AAEnC,IAAY,KAeX;AAfD,WAAY,KAAK;IACf,yDAAgD,CAAA;IAChD,qEAA4D,CAAA;IAC5D,mEAA0D,CAAA;IAC1D,qFAA4E,CAAA;IAC5E,qEAA4D,CAAA;IAC5D,iFAAwE,CAAA;IACxE,mFAA0E,CAAA;IAC1E,qGAA4F,CAAA;IAC5F,iGAAwF,CAAA;IACxF,mHAA0G,CAAA;IAC1G,+FAAsF,CAAA;IACtF,iHAAwG,CAAA;IACxG,2FAAkF,CAAA;IAClF,6GAAoG,CAAA;AACtG,CAAC,EAfW,KAAK,
|
|
1
|
+
{"version":3,"file":"useFlags.js","sourceRoot":"","sources":["../../../src/hooks/useFlags.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,yEAAsE;AACtE,wCAAmC;AAEnC,IAAY,KAeX;AAfD,WAAY,KAAK;IACf,yDAAgD,CAAA;IAChD,qEAA4D,CAAA;IAC5D,mEAA0D,CAAA;IAC1D,qFAA4E,CAAA;IAC5E,qEAA4D,CAAA;IAC5D,iFAAwE,CAAA;IACxE,mFAA0E,CAAA;IAC1E,qGAA4F,CAAA;IAC5F,iGAAwF,CAAA;IACxF,mHAA0G,CAAA;IAC1G,+FAAsF,CAAA;IACtF,iHAAwG,CAAA;IACxG,2FAAkF,CAAA;IAClF,6GAAoG,CAAA;AACtG,CAAC,EAfW,KAAK,qBAAL,KAAK,QAehB;AAEM,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,mDAAwB,GAAE,CAAC;IAC/C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAE7D,MAAM,OAAO,GAAG,eAAK,CAAC,WAAW,CAC/B,CAAC,IAAW,EAAW,EAAE;;QACvB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,eAAe,GAAG,MAAA,OAAO,CAAC,KAAK,0CAAG,IAAI,CAAC,CAAC;QAC9C,MAAM,eAAe,GACnB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAEjE,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;YAC3C,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,MAAM,OAAO,GAAG,eAAK,CAAC,WAAW,CAC/B,CAAC,IAAW,EAAE,KAAc,EAAE,EAAE;QAC9B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QAChD,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,MAAM,KAAK,GAAG,eAAK,CAAC,OAAO,CAAyB,GAAG,EAAE;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,iCACV,GAAG,KACN,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,IACrB,EACF,EAA4B,CAC7B,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,eAAK,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,OAAO;KACjB,CAAC;AACJ,CAAC,CAAC;AA5DW,QAAA,QAAQ,YA4DnB","sourcesContent":["import React from \"react\";\nimport { useReactifySearchContext } from \"./useReactifySearchContext\";\nimport { debug } from \"../utility\";\n\nexport enum Flags {\n SENSOR_SORT = \"reactify-search:flag_sensor_sort\",\n SENSOR_COLLECTION = \"reactify-search:flag_sensor_collection\",\n SENSOR_PUBLISHED = \"reactify-search:flag_sensor_published\",\n SENSOR_INVENTORYAVAILABLE = \"reactify-search:flag_sensor_inventoryavailable\",\n SENSOR_SEARCHTERM = \"reactify-search:flag_sensor_searchterm\",\n SENSOR_SEARCHTERM_VALUE = \"reactify-search:flag_sensor_searchterm_value\",\n SENSOR_SEARCHTERM_PHRASE = \"reactify-search:flag_sensor_searchterm_phrase\",\n SENSOR_SEARCHTERM_PHRASE_SYNONYMS = \"reactify-search:flag_sensor_searchterm_phrase_synonyms\",\n SENSOR_SEARCHTERM_PHRASE_PREFIX = \"reactify-search:flag_sensor_searchterm_phrase_prefix\",\n SENSOR_SEARCHTERM_PHRASE_PREFIX_SYNONYMS = \"reactify-search:flag_sensor_searchterm_phrase_prefix_synonyms\",\n SENSOR_SEARCHTERM_CROSS_FIELDS = \"reactify-search:flag_sensor_searchterm_cross_fields\",\n SENSOR_SEARCHTERM_CROSS_FIELDS_SYNONYMS = \"reactify-search:flag_sensor_searchterm_cross_fields_synonyms\",\n SENSOR_SEARCHTERM_SPAN_FIRST = \"reactify-search:flag_sensor_searchterm_span_first\",\n SENSOR_SEARCHTERM_SPAN_FIRST_SYNONYMS = \"reactify-search:flag_sensor_searchterm_span_first_synonyms\",\n}\n\nexport const useFlags = () => {\n const { options } = useReactifySearchContext();\n const [delta, setDelta] = React.useState<number>(Date.now());\n\n const getFlag = React.useCallback(\n (flag: Flags): boolean => {\n if (typeof window === \"undefined\") {\n return true;\n }\n\n const flagFromOptions = options.flags?.[flag];\n const flagFromSession =\n window.sessionStorage.getItem(flag) === \"false\" ? false : true;\n\n if (typeof flagFromOptions === \"undefined\") {\n return flagFromSession;\n }\n\n return flagFromOptions;\n },\n [delta]\n );\n\n const setFlag = React.useCallback(\n (flag: Flags, value: boolean) => {\n if (typeof window === \"undefined\") {\n return;\n }\n\n window.sessionStorage.setItem(flag, `${value}`);\n setDelta(Date.now());\n },\n [delta]\n );\n\n const flags = React.useMemo<Record<Flags, boolean>>(() => {\n return Object.values(Flags).reduce<Record<Flags, boolean>>(\n (acc, flag) => ({\n ...acc,\n [flag]: getFlag(flag),\n }),\n {} as Record<Flags, boolean>\n );\n }, [delta]);\n\n React.useEffect(() => {\n for (const flag of Object.values(Flags)) {\n setFlag(flag, getFlag(flag));\n }\n }, []);\n\n React.useEffect(() => {\n debug.log(\"useFlags\", \"flags\", flags);\n }, [flags]);\n\n return {\n flags: flags,\n setFlag: setFlag,\n getFlag: getFlag,\n };\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIndices.js","sourceRoot":"","sources":["../../../src/hooks/useIndices.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,yEAAsE;AAO/D,MAAM,UAAU,GAAG,GAAe,EAAE;IACzC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,mDAAwB,GAAE,CAAC;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAE9E,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAwB,EAAE,CAAC,CAAC;IAExE,MAAM,eAAe,GAAkC,CAAC,SAAS,EAAE,EAAE;QACnE,IAAI,kBAAkB,GAAG,SAAS,CAAC;QACnC,IAAI;
|
|
1
|
+
{"version":3,"file":"useIndices.js","sourceRoot":"","sources":["../../../src/hooks/useIndices.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,yEAAsE;AAO/D,MAAM,UAAU,GAAG,GAAe,EAAE;IACzC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,mDAAwB,GAAE,CAAC;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAE9E,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAwB,EAAE,CAAC,CAAC;IAExE,MAAM,eAAe,GAAkC,CAAC,SAAS,EAAE,EAAE;QACnE,IAAI,kBAAkB,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAErD,kBAAkB,GAAG,GAAG,QAAQ,IAAI,IAAI,IAAI,CAC1C,QAAQ,CAAC,SAAS,CAAC,CACpB,CAAC,cAAc,EAAE,KAAK,SAAS,GAAG,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,kBAAkB,CAAC;IAC5B,CAAC,CAAC;IAEF,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,CAAC,GAAS,EAAE;YACV,MAAM,QAAQ,GAA6B,MAAM,KAAK,CACpD,GAAG,MAAM,CAAC,QAAQ,2BAA2B,EAC7C;gBACE,OAAO,EAAE;oBACP,kBAAkB,EAAE,MAAM,CAAC,KAAK;oBAChC,uBAAuB,EAAE,MAAM;iBAChC;aACF,CACF,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAEtC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,QAAQ,QAAQ,CAAC,CAAC;YAE/C,UAAU,CACR,QAAQ;iBACL,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;iBACzB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACnC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACpC,CAAC;QACJ,CAAC,CAAA,CAAC,EAAE,CAAC;IACP,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtB,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,eAAe,EAAE,eAAe;KACjC,CAAC;AACJ,CAAC,CAAC;AAhDW,QAAA,UAAU,cAgDrB","sourcesContent":["import React from \"react\";\nimport { useReactifySearchContext } from \"./useReactifySearchContext\";\n\nexport type UseIndices = {\n indices: Array<string>;\n indexNameFormat: (indexName: string) => string;\n};\n\nexport const useIndices = (): UseIndices => {\n const { config, options } = useReactifySearchContext();\n const shopName = options.shopifyPermanentDomain.replace(\".myshopify.com\", \"\");\n\n const [indices, setIndices] = React.useState<UseIndices[\"indices\"]>([]);\n\n const indexNameFormat: UseIndices[\"indexNameFormat\"] = (indexName) => {\n let indexNameFormatted = indexName;\n try {\n const indexDate = indexName.split(`${shopName}-`)[1];\n\n indexNameFormatted = `${shopName} ${new Date(\n parseInt(indexDate)\n ).toLocaleString()} (${indexDate})`;\n } catch (error) {\n console.error(error);\n }\n\n return indexNameFormatted;\n };\n\n React.useEffect(() => {\n (async () => {\n const response: Array<{ index: string }> = await fetch(\n `${config.endpoint}/_cat/indices?format=json`,\n {\n headers: {\n \"x-reactify-index\": config.index,\n \"x-reactify-skip-cache\": \"true\",\n },\n }\n ).then((response) => response.json());\n\n const regexp = new RegExp(`${shopName}-[0-9]`);\n\n setIndices(\n response\n .map((item) => item.index)\n .filter((item) => regexp.test(item))\n .sort((a, b) => (a > b ? -1 : 1))\n );\n })();\n }, [config.endpoint]);\n\n return {\n indices: indices,\n indexNameFormat: indexNameFormat,\n };\n};\n"]}
|
|
@@ -16,9 +16,9 @@ export declare const usePagination: (input: ReactivesearchPaginationProps) => {
|
|
|
16
16
|
/** Function to build a URL for a specific page number, useful for Href links */
|
|
17
17
|
buildPagePath: (page: number) => string;
|
|
18
18
|
/** Function to change to the next page, if an event is provided the preventDefault() method will be called */
|
|
19
|
-
handleNextPage: (event?: React.SyntheticEvent
|
|
19
|
+
handleNextPage: (event?: React.SyntheticEvent) => void;
|
|
20
20
|
/** Function to change to the previous page, if an event is provided the preventDefault() method will be called */
|
|
21
|
-
handlePreviousPage: (event?: React.SyntheticEvent
|
|
21
|
+
handlePreviousPage: (event?: React.SyntheticEvent) => void;
|
|
22
22
|
/** Function to change to any page, if an event is provided the preventDefault() method will be called */
|
|
23
|
-
handlePageChange: (pageNumber: number, event?: React.SyntheticEvent
|
|
23
|
+
handlePageChange: (pageNumber: number, event?: React.SyntheticEvent) => void;
|
|
24
24
|
};
|
|
@@ -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,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAElF,OAAO,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;YAClC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC;YAClD,CAAC,CAAC,GAAG,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC;IAC3E,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,eAAK,CAAC,OAAO,CAC/B,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,EAChE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,CACnD,CAAC;IAEF,8EAA8E;IAC9E,MAAM,iBAAiB,GAAG,eAAK,CAAC,OAAO,CACrC,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,EAC3B,CAAC,KAAK,CAAC,WAAW,CAAC,CACpB,CAAC;IAEF,MAAM,WAAW,GAAG,eAAK,CAAC,OAAO,CAC/B,GAAG,EAAE,CAAC,iBAAiB,GAAG,KAAK,CAAC,UAAU,EAC1C,CAAC,iBAAiB,EAAE,KAAK,CAAC,UAAU,CAAC,CACtC,CAAC;IAEF,MAAM,eAAe,GAAG,eAAK,CAAC,OAAO,CACnC,GAAG,EAAE,CAAC,iBAAiB,GAAG,CAAC,EAC3B,CAAC,iBAAiB,CAAC,CACpB,CAAC;IAEF,MAAM,OAAO,GAAG,eAAK,CAAC,WAAW,CAC/B,CAAC,UAAkB,EAAE,EAAE;QACrB,OAAO,UAAU,IAAI,CAAC,IAAI,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IAC1D,CAAC,EACD,CAAC,KAAK,CAAC,UAAU,CAAC,CACnB,CAAC;IAEF,MAAM,gBAAgB,GAAG,eAAK,CAAC,WAAW,CAGxC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;QACpB,eAAK,CAAC,GAAG,CAAC,eAAe,EAAE,8BAA8B,EAAE,UAAU,CAAC,CAAC;QACvE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;
|
|
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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePaginationLoadable.js","sourceRoot":"","sources":["../../../src/hooks/usePaginationLoadable.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,wBAA6C;AAC7C,wCAAmC;AAE5B,MAAM,qBAAqB,GAAG,CACnC,KAAgC,EAchC,EAAE;IACF,MAAM,aAAa,GAAG,IAAA,eAAY,GAAE,CAAC;IACrC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,aAAU,GAAE,CAAC;IAErC,MAAM,OAAO,GACX,KAAK,CAAC,WAAW,CAAC,gBAAgB,KAAK,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC;IAE3E,MAAM,cAAc,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC5C,eAAK,CAAC,GAAG,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"usePaginationLoadable.js","sourceRoot":"","sources":["../../../src/hooks/usePaginationLoadable.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,wBAA6C;AAC7C,wCAAmC;AAE5B,MAAM,qBAAqB,GAAG,CACnC,KAAgC,EAchC,EAAE;IACF,MAAM,aAAa,GAAG,IAAA,eAAY,GAAE,CAAC;IACrC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,aAAU,GAAE,CAAC;IAErC,MAAM,OAAO,GACX,KAAK,CAAC,WAAW,CAAC,gBAAgB,KAAK,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC;IAE3E,MAAM,cAAc,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC5C,eAAK,CAAC,GAAG,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,aAAa,CAAC,KAAK,CAAC;YAClB,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE;gBACP,IAAI,EACF,IAAI,CAAC,IAAI,CACP,KAAK,CAAC,WAAW,CAAC,gBAAgB,GAAG,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,KAAI,EAAE,CAAC,CACnE,GAAG,CAAC;gBACP,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAClD,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,YAAY;aACjB;SACF,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAE1E,OAAO,eAAK,CAAC,OAAO,CAClB,GAAG,EAAE,CAAC,CAAC;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO;QACP,cAAc;QACd,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC,EACF,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,CAC5D,CAAC;AACJ,CAAC,CAAC;AArDW,QAAA,qBAAqB,yBAqDhC","sourcesContent":["import React from \"react\";\n\nimport { ReactivesearchResultProps } from \"../types\";\nimport { useAnalytics, useFilters } from \".\";\nimport { debug } from \"../utility\";\n\nexport const usePaginationLoadable = (\n input: ReactivesearchResultProps\n): {\n loading: boolean;\n hasMore: boolean;\n handleLoadMore: () => void;\n resultStats: {\n time: number;\n hidden: number;\n promoted: number;\n currentPage: number;\n numberOfPages: number;\n numberOfResults?: number;\n displayedResults: number;\n };\n} => {\n const analyticsHook = useAnalytics();\n const { filterStack } = useFilters();\n\n const hasMore =\n input.resultStats.displayedResults !== input.resultStats.numberOfResults;\n\n const handleLoadMore = React.useCallback(() => {\n debug.log(\"usePaginationLoadable\", \"handleLoadMore\");\n\n if (!hasMore) {\n return;\n }\n\n input.loadMore();\n analyticsHook.track({\n eventName: \"paginationChange\",\n payload: {\n page:\n Math.ceil(\n input.resultStats.displayedResults / (filterStack?.pageSize || 20)\n ) + 1,\n source: window.location.pathname.includes(\"/search\")\n ? \"search\"\n : \"collection\",\n },\n });\n }, [input.loadMore, analyticsHook.track, input.resultStats, filterStack]);\n\n return React.useMemo(\n () => ({\n loading: input.loading,\n hasMore,\n handleLoadMore,\n resultStats: input.resultStats,\n }),\n [input.loading, hasMore, handleLoadMore, input.resultStats]\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProductPrice.js","sourceRoot":"","sources":["../../../src/hooks/useProductPrice.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,8DAAmC;AAI5B,MAAM,eAAe,GAAG,CAAC,OAAuB,EAOrD,EAAE;IACF,OAAO,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;;QACxB,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,QAAQ,0CAAG,CAAC,CAAC,CAAC;QAEtC,IAAI,CAAC,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"useProductPrice.js","sourceRoot":"","sources":["../../../src/hooks/useProductPrice.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,8DAAmC;AAI5B,MAAM,eAAe,GAAG,CAAC,OAAuB,EAOrD,EAAE;IACF,OAAO,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;;QACxB,MAAM,OAAO,GAAG,MAAA,OAAO,CAAC,QAAQ,0CAAG,CAAC,CAAC,CAAC;QAEtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,SAAS;gBAChB,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,SAAS;aAC1B,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,MAAM,QAAQ,GAAG,MAAA,OAAO,CAAC,kBAAkB,0CAAG,CAAC,CAAC,CAAC;QAEjD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjC,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,SAAS;gBAChB,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,SAAS;aAC1B,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,MAAA,QAAQ,CAAC,KAAK,CAAC,aAAa,mCAAI,KAAK,CAAC;QAE3D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM;YACjC,CAAC,CAAC,IAAA,qBAAQ,EAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YACjC,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5E,MAAM,cAAc,GAAG,CAAA,MAAA,QAAQ,CAAC,gBAAgB,0CAAE,MAAM;YACtD,CAAC,CAAC,IAAA,qBAAQ,EAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAC5C,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,uBAAuB,GAAG,cAAc;YAC5C,CAAC,CAAC,WAAW,CAAC,cAAc,EAAE,YAAY,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,MAAM,GACV,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,KAAK,IAAI,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAE1E,OAAO;YACL,KAAK;YACL,MAAM;YACN,YAAY;YACZ,cAAc;YACd,cAAc;YACd,uBAAuB;SACxB,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAChB,CAAC,CAAC;AA5DW,QAAA,eAAe,mBA4D1B;AAEF,MAAM,WAAW,GAAG,CAAC,KAAe,EAAE,YAAoB,EAAU,EAAE;IACpE,IAAI,WAAW,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;QAC/C,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,YAAY;KACvB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAC3B,WAAW,GAAG,MAAM,WAAW,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC","sourcesContent":["import React from \"react\";\nimport currency from \"currency.js\";\n\nimport { ElasticProduct } from \"../types/elastic\";\n\nexport const useProductPrice = (product: ElasticProduct): {\n price?: currency;\n onSale: boolean;\n currencyCode: string;\n compareAtPrice?: currency;\n formattedPrice?: string;\n formattedCompareAtPrice?: string;\n} => {\n return React.useMemo(() => {\n const variant = product.variants?.[0];\n\n if (!variant) {\n return {\n onSale: false,\n price: undefined,\n currencyCode: \"AUD\",\n compareAtPrice: undefined,\n };\n }\n\n // @todo select the appropriate currency\n const priceSet = variant.presentment_prices?.[0];\n\n if (!priceSet || !priceSet.price) {\n return {\n onSale: false,\n price: undefined,\n currencyCode: \"AUD\",\n compareAtPrice: undefined,\n };\n }\n\n const currencyCode = priceSet.price.currency_code ?? \"AUD\";\n\n const price = priceSet.price.amount\n ? currency(priceSet.price.amount)\n : undefined;\n\n const formattedPrice = price ? formatPrice(price, currencyCode) : undefined;\n\n const compareAtPrice = priceSet.compare_at_price?.amount\n ? currency(priceSet.compare_at_price.amount)\n : undefined;\n\n const formattedCompareAtPrice = compareAtPrice\n ? formatPrice(compareAtPrice, currencyCode)\n : undefined;\n\n const onSale =\n !!compareAtPrice && !!price && compareAtPrice.intValue > price.intValue;\n\n return {\n price,\n onSale,\n currencyCode,\n compareAtPrice,\n formattedPrice,\n formattedCompareAtPrice,\n };\n }, [product]);\n};\n\nconst formatPrice = (price: currency, currencyCode: string): string => {\n let priceString = new Intl.NumberFormat(\"en-AU\", {\n style: \"currency\",\n currency: currencyCode,\n }).format(price.value);\n\n if (\"AUD\" === currencyCode) {\n priceString = `AU ${priceString}`;\n }\n\n return priceString;\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Config, ConfigRedirect, ReactivesearchResultProps } from "../types";
|
|
3
3
|
import { Flags } from "./useFlags";
|
|
4
|
-
export
|
|
4
|
+
export type ReactifySearchMode = "search" | "collection" | "instant-search";
|
|
5
5
|
export declare const ReactifySearchContext: React.Context<{
|
|
6
6
|
config: Config;
|
|
7
7
|
options: {
|
|
@@ -9,20 +9,20 @@ export declare const ReactifySearchContext: React.Context<{
|
|
|
9
9
|
mode: ReactifySearchMode;
|
|
10
10
|
index: string;
|
|
11
11
|
shopifyPermanentDomain: string;
|
|
12
|
-
market?: string
|
|
13
|
-
filtersHandle?: string
|
|
14
|
-
credentials?: string
|
|
15
|
-
onRedirect?: (
|
|
12
|
+
market?: string;
|
|
13
|
+
filtersHandle?: string;
|
|
14
|
+
credentials?: string;
|
|
15
|
+
onRedirect?: (type: "redirect" | "search", url: string) => void;
|
|
16
16
|
theme: Record<string, unknown>;
|
|
17
|
-
additionalComponentIds?: string
|
|
18
|
-
includeFields?: string
|
|
19
|
-
excludeFields?: string
|
|
20
|
-
flags?: Record<Flags, boolean
|
|
21
|
-
query?: Record<string, string
|
|
17
|
+
additionalComponentIds?: Array<string>;
|
|
18
|
+
includeFields?: Array<string>;
|
|
19
|
+
excludeFields?: Array<string>;
|
|
20
|
+
flags?: Record<Flags, boolean>;
|
|
21
|
+
query?: Record<string, string>;
|
|
22
22
|
preload?: {
|
|
23
23
|
config: Config;
|
|
24
24
|
state: unknown;
|
|
25
|
-
}
|
|
25
|
+
};
|
|
26
26
|
} & ({
|
|
27
27
|
mode: "search";
|
|
28
28
|
} | {
|
|
@@ -56,20 +56,20 @@ export declare const useReactifySearchContext: () => {
|
|
|
56
56
|
mode: ReactifySearchMode;
|
|
57
57
|
index: string;
|
|
58
58
|
shopifyPermanentDomain: string;
|
|
59
|
-
market?: string
|
|
60
|
-
filtersHandle?: string
|
|
61
|
-
credentials?: string
|
|
62
|
-
onRedirect?: (
|
|
59
|
+
market?: string;
|
|
60
|
+
filtersHandle?: string;
|
|
61
|
+
credentials?: string;
|
|
62
|
+
onRedirect?: (type: "redirect" | "search", url: string) => void;
|
|
63
63
|
theme: Record<string, unknown>;
|
|
64
|
-
additionalComponentIds?: string
|
|
65
|
-
includeFields?: string
|
|
66
|
-
excludeFields?: string
|
|
67
|
-
flags?: Record<Flags, boolean
|
|
68
|
-
query?: Record<string, string
|
|
64
|
+
additionalComponentIds?: Array<string>;
|
|
65
|
+
includeFields?: Array<string>;
|
|
66
|
+
excludeFields?: Array<string>;
|
|
67
|
+
flags?: Record<Flags, boolean>;
|
|
68
|
+
query?: Record<string, string>;
|
|
69
69
|
preload?: {
|
|
70
70
|
config: Config;
|
|
71
71
|
state: unknown;
|
|
72
|
-
}
|
|
72
|
+
};
|
|
73
73
|
} & ({
|
|
74
74
|
mode: "search";
|
|
75
75
|
} | {
|