@usereactify/search 5.57.0-beta.0 → 5.58.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 +26 -2
- package/dist/package.json +2 -2
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.d.ts +0 -2
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js +3 -8
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js.map +1 -1
- package/dist/src/components/Sensor/SensorInventoryAvailable.js +0 -4
- package/dist/src/components/Sensor/SensorInventoryAvailable.js.map +1 -1
- package/dist/src/components/Sensor/SensorPublished.js +0 -4
- package/dist/src/components/Sensor/SensorPublished.js.map +1 -1
- package/dist/src/components/Sensor/SensorSearchTerm.js +5 -26
- package/dist/src/components/Sensor/SensorSearchTerm.js.map +1 -1
- package/dist/src/components/Sensor/SensorSort.js +0 -4
- package/dist/src/components/Sensor/SensorSort.js.map +1 -1
- package/dist/src/hooks/index.d.ts +0 -1
- package/dist/src/hooks/index.js +0 -1
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/useProductPrice.d.ts +2 -1
- package/dist/src/hooks/useProductPrice.js +50 -31
- package/dist/src/hooks/useProductPrice.js.map +1 -1
- package/dist/src/hooks/useReactifySearchContext.d.ts +0 -3
- package/dist/src/hooks/useReactifySearchContext.js.map +1 -1
- package/dist/src/types/elastic.d.ts +4 -0
- package/dist/src/types/elastic.js.map +1 -1
- package/dist/src/types/firestore.d.ts +2 -0
- package/dist/src/types/firestore.js.map +1 -1
- package/dist/src/utility/curation.js +38 -22
- package/dist/src/utility/curation.js.map +1 -1
- package/dist/src/utility/sortOption.js +44 -17
- package/dist/src/utility/sortOption.js.map +1 -1
- package/package.json +1 -1
- package/dist/src/hooks/useFlags.d.ts +0 -21
- package/dist/src/hooks/useFlags.js +0 -65
- package/dist/src/hooks/useFlags.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,13 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
-
## [5.
|
|
5
|
+
## [5.58.0-beta.0](https://bitbucket.org/usereactify/reactify-search-ui/compare/beta-v5.55.0-beta.3...beta-v5.58.0-beta.0) (2025-02-26)
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
### Features
|
|
9
9
|
|
|
10
|
-
*
|
|
10
|
+
* improve querying for market specifics (curations and inventory) ([0527154](https://bitbucket.org/usereactify/reactify-search-ui/commit/05271549a03ba3d077673751baa96196a5e8df87))
|
|
11
|
+
* improve selection of curations based on market and fallbacks ([63b10ab](https://bitbucket.org/usereactify/reactify-search-ui/commit/63b10abe1793151ccf7d08642e736b8dc3ab44bd))
|
|
12
|
+
* log curation as it changes ([6e56aaa](https://bitbucket.org/usereactify/reactify-search-ui/commit/6e56aaa27e97a14aeb5460f6c628a0802a1d7ebd))
|
|
13
|
+
* remove flags ([425865a](https://bitbucket.org/usereactify/reactify-search-ui/commit/425865abe048b6f799c6330ce094f882cce2d0ff))
|
|
11
14
|
* track attribution within analytics ([bd9c6b5](https://bitbucket.org/usereactify/reactify-search-ui/commit/bd9c6b588c30e705848315e41ed731a4bc16ebdf))
|
|
15
|
+
* update sort options for price_min and price_max to use market specific prices ([1a6c0c3](https://bitbucket.org/usereactify/reactify-search-ui/commit/1a6c0c3b8e63200a71d92d7ba62271bba3ec9d32))
|
|
16
|
+
* update useProductPrice to return market specific prices ([1907949](https://bitbucket.org/usereactify/reactify-search-ui/commit/1907949f2136090afaaba23b344232b5f0d90e9d))
|
|
12
17
|
|
|
13
18
|
|
|
14
19
|
### Bug Fixes
|
|
@@ -23,8 +28,27 @@ All notable changes to this project will be documented in this file. See [standa
|
|
|
23
28
|
* generate query for sliders using custom query for SSR loading and native query for realtime ([d5f36bb](https://bitbucket.org/usereactify/reactify-search-ui/commit/d5f36bb34901c4a0258555385fe9f95260f1c615))
|
|
24
29
|
* improve suggestions to include more results when searching ([ba04d45](https://bitbucket.org/usereactify/reactify-search-ui/commit/ba04d45a9fb649ac371bbcfc1003f83cf47aee6d))
|
|
25
30
|
* prevent call to window on load ([4628557](https://bitbucket.org/usereactify/reactify-search-ui/commit/462855708bddc4ff72003ed5a0b541ed3447e5f2))
|
|
31
|
+
* remove listener for url sort param ([a0514ae](https://bitbucket.org/usereactify/reactify-search-ui/commit/a0514aef591a861b4a7718eed1b5a0254fb8b4cf))
|
|
26
32
|
* set initial slider value to [0,0] when not in url params ([aeb7bd7](https://bitbucket.org/usereactify/reactify-search-ui/commit/aeb7bd77e75f0d9b4cae533a1f3702547cab5cb2))
|
|
27
33
|
|
|
34
|
+
### [5.57.1](https://bitbucket.org/usereactify/reactify-search-ui/compare/release-v5.57.0...release-v5.57.1) (2025-02-06)
|
|
35
|
+
|
|
36
|
+
## [5.57.0](https://bitbucket.org/usereactify/reactify-search-ui/compare/release-v5.56.8...release-v5.57.0) (2025-02-06)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Features
|
|
40
|
+
|
|
41
|
+
* improve querying for market specifics (curations and inventory) ([0527154](https://bitbucket.org/usereactify/reactify-search-ui/commit/05271549a03ba3d077673751baa96196a5e8df87))
|
|
42
|
+
* improve selection of curations based on market and fallbacks ([63b10ab](https://bitbucket.org/usereactify/reactify-search-ui/commit/63b10abe1793151ccf7d08642e736b8dc3ab44bd))
|
|
43
|
+
* log curation as it changes ([6e56aaa](https://bitbucket.org/usereactify/reactify-search-ui/commit/6e56aaa27e97a14aeb5460f6c628a0802a1d7ebd))
|
|
44
|
+
|
|
45
|
+
### [5.56.8](https://bitbucket.org/usereactify/reactify-search-ui/compare/release-v5.56.7...release-v5.56.8) (2025-01-29)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
### Bug Fixes
|
|
49
|
+
|
|
50
|
+
* remove listener for url sort param ([a0514ae](https://bitbucket.org/usereactify/reactify-search-ui/commit/a0514aef591a861b4a7718eed1b5a0254fb8b4cf))
|
|
51
|
+
|
|
28
52
|
### [5.56.7](https://bitbucket.org/usereactify/reactify-search-ui/compare/release-v5.56.6...release-v5.56.7) (2025-01-17)
|
|
29
53
|
|
|
30
54
|
|
package/dist/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usereactify/search",
|
|
3
3
|
"description": "React UI library for Reactify Search",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.58.0-beta.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
7
7
|
"types": "dist/src/index.d.ts",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"README.md",
|
|
11
11
|
"CHANGELOG.md"
|
|
12
12
|
],
|
|
13
|
-
"packageManager": "pnpm@8.9.2",
|
|
13
|
+
"packageManager": "pnpm@8.9.2+sha1.5f2fa48d614263457cf5d7fb7be8b878da318d87",
|
|
14
14
|
"scripts": {
|
|
15
15
|
"watch": "tsc --watch",
|
|
16
16
|
"release": "standard-version --tag-prefix release-v",
|
|
@@ -31,8 +31,6 @@ export type ReactifySearchProviderProps = {
|
|
|
31
31
|
includeFields?: Array<string>;
|
|
32
32
|
/** Advanced usage: Fields to exclude from the Elasticsearch response e.g. ["variant_skus", "*price*"] */
|
|
33
33
|
excludeFields?: Array<string>;
|
|
34
|
-
/** Advanced usage: Flags are used to enable or disable specific features within Reactify Search */
|
|
35
|
-
flags?: Record<string, boolean>;
|
|
36
34
|
/** Advanced usage: Server content for SSR */
|
|
37
35
|
query?: Record<string, string>;
|
|
38
36
|
preload?: {
|
|
@@ -118,14 +118,6 @@ const ReactifySearchInner = (props) => {
|
|
|
118
118
|
setSearchTerm(searchTermFromURL);
|
|
119
119
|
}
|
|
120
120
|
}, [searchTermFromURL]);
|
|
121
|
-
react_1.default.useEffect(() => {
|
|
122
|
-
if (props.mode === "instant-search") {
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
if (searchSortFromURL && sortOption !== searchSortFromURL) {
|
|
126
|
-
setSortOption(searchSortFromURL);
|
|
127
|
-
}
|
|
128
|
-
}, [searchSortFromURL]);
|
|
129
121
|
const contextValue = react_1.default.useMemo(() => {
|
|
130
122
|
var _a, _b, _c;
|
|
131
123
|
if (!config) {
|
|
@@ -164,6 +156,9 @@ const ReactifySearchInner = (props) => {
|
|
|
164
156
|
resultStats,
|
|
165
157
|
curation,
|
|
166
158
|
]);
|
|
159
|
+
react_1.default.useEffect(() => {
|
|
160
|
+
utility_1.debug.log("curation", "content", curation);
|
|
161
|
+
}, [curation === null || curation === void 0 ? void 0 : curation.id]);
|
|
167
162
|
utility_1.debug.hook("ReactifySearchProvider", "context", contextValue);
|
|
168
163
|
if (!contextValue) {
|
|
169
164
|
if (props.renderBooting) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactifySearchProvider.js","sourceRoot":"","sources":["../../../../src/components/ReactifySearchProvider/ReactifySearchProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n// @ts-expect-error missing types\nimport * as GaGtag from \"ga-gtag\";\n\nimport pkg from \"../../../package.json\";\n\nimport { ReactifySearchContext, useConfig } from \"../../hooks\";\nimport { UtilityAuthenticatedReactiveBase } from \"../../components\";\nimport { debug } from \"../../utility\";\nimport { Config, ConfigCuration, ConfigRedirect, ReactivesearchResultProps } from \"../../types\";\nimport { getCuration } from \"../../utility/curation\";\n\nexport type ReactifySearchProviderProps = {\n /** Standard react children */\n children?: React.ReactNode | undefined;\n /** The search area the provider will be used in */\n mode: \"search\" | \"collection\" | \"instant-search\";\n /** Shopify store domain used to resolve the site configuration */\n shopifyPermanentDomain: string;\n /** Market ID used to change merchandising based on market e.g. 7494533198 */\n market?: string;\n /** Callback function for redirects, suitable for headless sites to avoid full page refresh */\n onRedirect?: (type: \"redirect\" | \"search\", url: string) => void;\n /** Render method to display a component when the config is loading */\n renderBooting?: () => JSX.Element | null;\n /** Advanced usage: Override the default Reactify Search id (for telemetry) */\n clientId?: string;\n /** Advanced usage: Override the default Filters selection logic */\n filtersHandle?: string;\n /** Advanced usage: Array of additional component IDs managed outside of Reactify Search */\n additionalComponentIds?: Array<string>;\n /** Advanced usage: Override the default Elasticsearch index */\n index?: string;\n /** Advanced usage: Override the default Reactify Search config (for multi-instance stores) */\n configId?: string;\n /** Advanced usage: Override the default Elasticsearch credentials */\n credentials?: string;\n /** Advanced usage: Override the default ReactiveBase theme */\n theme?: Record<string, unknown>;\n /** Advanced usage: Fields to include in the Elasticsearch response e.g. [\"title\"] */\n includeFields?: Array<string>;\n /** Advanced usage: Fields to exclude from the Elasticsearch response e.g. [\"variant_skus\", \"*price*\"] */\n excludeFields?: Array<string>;\n /** Advanced usage: Flags are used to enable or disable specific features within Reactify Search */\n flags?: Record<string, boolean>;\n /** Advanced usage: Server content for SSR */\n query?: Record<string, string>;\n preload?: {\n config: Config;\n state: unknown;\n }\n} & (\n | {\n mode: \"search\";\n }\n | {\n mode: \"collection\";\n /** Collection object that includes the handle, used to find curations */\n collectionHandle: string;\n }\n | {\n mode: \"instant-search\";\n }\n);\n\nexport const ReactifySearchProvider: React.FC<ReactifySearchProviderProps> = (\n props\n) => {\n React.useEffect(() => {\n debug.log(\"ReactifySearchProvider\", \"props\", props);\n\n GaGtag.install(\"G-DV00Z0X5VP\", {\n cookie_prefix: \"_rs\",\n user_properties: {\n shop: props.shopifyPermanentDomain,\n version: pkg.version,\n },\n });\n }, [props]);\n\n return <ReactifySearchInner {...props} />;\n};\n\nconst ReactifySearchInner: React.FC<ReactifySearchProviderProps> = (props) => {\n const { config } = useConfig(props.shopifyPermanentDomain, props.preload?.config);\n\n const theme = props.theme ?? {\n typography: {\n fontFamily: \"inherit\",\n fontSize: \"inherit\",\n },\n };\n\n // search from url\n const searchTermFromURL = React.useMemo(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(\"q\") ?? undefined;\n }, [typeof window !== \"undefined\" && window.location.search]);\n\n // sort from url\n const searchSortFromURL = React.useMemo(() => {\n if (typeof window === \"undefined\") {\n return props.query?.sort;\n }\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(\"sort\") ?? undefined;\n }, [typeof window !== \"undefined\" && window.location.search]);\n\n // index from url\n const indexFromURL = React.useMemo(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(\"index\") ?? undefined;\n }, [typeof window !== \"undefined\" && window.location.search]);\n\n // search term\n const [searchTerm, setSearchTerm] = React.useState<string>(\n searchTermFromURL ?? \"\"\n );\n // search term redirect\n const searchRedirect = React.useMemo<ConfigRedirect | undefined>(() => {\n return config?.redirects.find((redirect) => redirect.query.trim().toLowerCase() === searchTerm.trim().toLowerCase());\n }, [config?.redirects, searchTerm]);\n // show instant-search\n const [showInstantSearchResults, setShowInstantSearchResults] =\n React.useState<boolean>(false);\n // sort option\n const [sortOption, setSortOption] = React.useState<string>(\n searchSortFromURL ?? \"\"\n );\n // results\n const [results, setResults] = React.useState<\n ReactivesearchResultProps[\"data\"]\n >([]);\n // curation\n const curation = React.useMemo<ConfigCuration | undefined>(() => {\n if (!config) {\n return undefined;\n }\n\n return getCuration({\n provider: props,\n config: config,\n searchTerm: searchTerm,\n });\n }, [props, config, searchTerm]);\n // result stats\n const [resultStats, setResultStats] =\n React.useState<ReactivesearchResultProps[\"resultStats\"]>();\n\n React.useEffect(() => {\n if (props.mode === \"instant-search\") {\n return;\n }\n\n if (searchTermFromURL && searchTerm !== searchTermFromURL) {\n setSearchTerm(searchTermFromURL);\n }\n }, [searchTermFromURL]);\n\n React.useEffect(() => {\n if (props.mode === \"instant-search\") {\n return;\n }\n\n if (searchSortFromURL && sortOption !== searchSortFromURL) {\n setSortOption(searchSortFromURL);\n }\n }, [searchSortFromURL]);\n\n const contextValue = React.useMemo(() => {\n if (!config) {\n return;\n }\n\n return {\n config: config,\n options: {\n ...props,\n clientId: props.clientId ?? \"theme\",\n index: props.index ?? indexFromURL ?? config.index,\n filtersHandle: props.filtersHandle,\n credentials: props.credentials,\n theme: theme,\n },\n search: {\n searchTerm: searchTerm,\n setSearchTerm: setSearchTerm,\n showInstantSearchResults: showInstantSearchResults,\n setShowInstantSearchResults: setShowInstantSearchResults,\n searchRedirect: searchRedirect,\n },\n sortby: {\n sortOption: sortOption,\n setSortOption: setSortOption,\n },\n results: {\n results: results,\n setResults: setResults,\n resultStats: resultStats,\n setResultStats: setResultStats,\n },\n curation: curation,\n };\n }, [\n config,\n props,\n searchTerm,\n showInstantSearchResults,\n searchRedirect,\n sortOption,\n results,\n resultStats,\n curation,\n ]);\n\n debug.hook(\"ReactifySearchProvider\", \"context\", contextValue);\n\n if (!contextValue) {\n if (props.renderBooting) {\n return props.renderBooting();\n }\n return null;\n }\n\n return (\n <ReactifySearchContext.Provider value={contextValue}>\n <UtilityAuthenticatedReactiveBase>\n {props.children}\n </UtilityAuthenticatedReactiveBase>\n </ReactifySearchContext.Provider>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"ReactifySearchProvider.js","sourceRoot":"","sources":["../../../../src/components/ReactifySearchProvider/ReactifySearchProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n// @ts-expect-error missing types\nimport * as GaGtag from \"ga-gtag\";\n\nimport pkg from \"../../../package.json\";\n\nimport { ReactifySearchContext, useConfig } from \"../../hooks\";\nimport { UtilityAuthenticatedReactiveBase } from \"../../components\";\nimport { debug } from \"../../utility\";\nimport { Config, ConfigCuration, ConfigRedirect, ReactivesearchResultProps } from \"../../types\";\nimport { getCuration } from \"../../utility/curation\";\n\nexport type ReactifySearchProviderProps = {\n /** Standard react children */\n children?: React.ReactNode | undefined;\n /** The search area the provider will be used in */\n mode: \"search\" | \"collection\" | \"instant-search\";\n /** Shopify store domain used to resolve the site configuration */\n shopifyPermanentDomain: string;\n /** Market ID used to change merchandising based on market e.g. 7494533198 */\n market?: string;\n /** Callback function for redirects, suitable for headless sites to avoid full page refresh */\n onRedirect?: (type: \"redirect\" | \"search\", url: string) => void;\n /** Render method to display a component when the config is loading */\n renderBooting?: () => JSX.Element | null;\n /** Advanced usage: Override the default Reactify Search id (for telemetry) */\n clientId?: string;\n /** Advanced usage: Override the default Filters selection logic */\n filtersHandle?: string;\n /** Advanced usage: Array of additional component IDs managed outside of Reactify Search */\n additionalComponentIds?: Array<string>;\n /** Advanced usage: Override the default Elasticsearch index */\n index?: string;\n /** Advanced usage: Override the default Reactify Search config (for multi-instance stores) */\n configId?: string;\n /** Advanced usage: Override the default Elasticsearch credentials */\n credentials?: string;\n /** Advanced usage: Override the default ReactiveBase theme */\n theme?: Record<string, unknown>;\n /** Advanced usage: Fields to include in the Elasticsearch response e.g. [\"title\"] */\n includeFields?: Array<string>;\n /** Advanced usage: Fields to exclude from the Elasticsearch response e.g. [\"variant_skus\", \"*price*\"] */\n excludeFields?: Array<string>;\n /** Advanced usage: Server content for SSR */\n query?: Record<string, string>;\n preload?: {\n config: Config;\n state: unknown;\n }\n} & (\n | {\n mode: \"search\";\n }\n | {\n mode: \"collection\";\n /** Collection object that includes the handle, used to find curations */\n collectionHandle: string;\n }\n | {\n mode: \"instant-search\";\n }\n);\n\nexport const ReactifySearchProvider: React.FC<ReactifySearchProviderProps> = (\n props\n) => {\n React.useEffect(() => {\n debug.log(\"ReactifySearchProvider\", \"props\", props);\n\n GaGtag.install(\"G-DV00Z0X5VP\", {\n cookie_prefix: \"_rs\",\n user_properties: {\n shop: props.shopifyPermanentDomain,\n version: pkg.version,\n },\n });\n }, [props]);\n\n return <ReactifySearchInner {...props} />;\n};\n\nconst ReactifySearchInner: React.FC<ReactifySearchProviderProps> = (props) => {\n const { config } = useConfig(props.shopifyPermanentDomain, props.preload?.config);\n\n const theme = props.theme ?? {\n typography: {\n fontFamily: \"inherit\",\n fontSize: \"inherit\",\n },\n };\n\n // search from url\n const searchTermFromURL = React.useMemo(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(\"q\") ?? undefined;\n }, [typeof window !== \"undefined\" && window.location.search]);\n\n // sort from url\n const searchSortFromURL = React.useMemo(() => {\n if (typeof window === \"undefined\") {\n return props.query?.sort;\n }\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(\"sort\") ?? undefined;\n }, [typeof window !== \"undefined\" && window.location.search]);\n\n // index from url\n const indexFromURL = React.useMemo(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(\"index\") ?? undefined;\n }, [typeof window !== \"undefined\" && window.location.search]);\n\n // search term\n const [searchTerm, setSearchTerm] = React.useState<string>(\n searchTermFromURL ?? \"\"\n );\n // search term redirect\n const searchRedirect = React.useMemo<ConfigRedirect | undefined>(() => {\n return config?.redirects.find((redirect) => redirect.query.trim().toLowerCase() === searchTerm.trim().toLowerCase());\n }, [config?.redirects, searchTerm]);\n // show instant-search\n const [showInstantSearchResults, setShowInstantSearchResults] =\n React.useState<boolean>(false);\n // sort option\n const [sortOption, setSortOption] = React.useState<string>(\n searchSortFromURL ?? \"\"\n );\n // results\n const [results, setResults] = React.useState<\n ReactivesearchResultProps[\"data\"]\n >([]);\n // curation\n const curation = React.useMemo<ConfigCuration | undefined>(() => {\n if (!config) {\n return undefined;\n }\n\n return getCuration({\n provider: props,\n config: config,\n searchTerm: searchTerm,\n });\n }, [props, config, searchTerm]);\n // result stats\n const [resultStats, setResultStats] =\n React.useState<ReactivesearchResultProps[\"resultStats\"]>();\n\n React.useEffect(() => {\n if (props.mode === \"instant-search\") {\n return;\n }\n\n if (searchTermFromURL && searchTerm !== searchTermFromURL) {\n setSearchTerm(searchTermFromURL);\n }\n }, [searchTermFromURL]);\n\n const contextValue = React.useMemo(() => {\n if (!config) {\n return;\n }\n\n return {\n config: config,\n options: {\n ...props,\n clientId: props.clientId ?? \"theme\",\n index: props.index ?? indexFromURL ?? config.index,\n filtersHandle: props.filtersHandle,\n credentials: props.credentials,\n theme: theme,\n },\n search: {\n searchTerm: searchTerm,\n setSearchTerm: setSearchTerm,\n showInstantSearchResults: showInstantSearchResults,\n setShowInstantSearchResults: setShowInstantSearchResults,\n searchRedirect: searchRedirect,\n },\n sortby: {\n sortOption: sortOption,\n setSortOption: setSortOption,\n },\n results: {\n results: results,\n setResults: setResults,\n resultStats: resultStats,\n setResultStats: setResultStats,\n },\n curation: curation,\n };\n }, [\n config,\n props,\n searchTerm,\n showInstantSearchResults,\n searchRedirect,\n sortOption,\n results,\n resultStats,\n curation,\n ]);\n\n React.useEffect(() => {\n debug.log(\"curation\", \"content\", curation);\n }, [curation?.id]);\n\n debug.hook(\"ReactifySearchProvider\", \"context\", contextValue);\n\n if (!contextValue) {\n if (props.renderBooting) {\n return props.renderBooting();\n }\n return null;\n }\n\n return (\n <ReactifySearchContext.Provider value={contextValue}>\n <UtilityAuthenticatedReactiveBase>\n {props.children}\n </UtilityAuthenticatedReactiveBase>\n </ReactifySearchContext.Provider>\n );\n};\n"]}
|
|
@@ -9,7 +9,6 @@ const ReactiveComponent_1 = __importDefault(require("@usereactify/search-interna
|
|
|
9
9
|
const hooks_1 = require("../../hooks");
|
|
10
10
|
const props_1 = require("../../utility/props");
|
|
11
11
|
const SensorInventoryAvailable = () => {
|
|
12
|
-
const flagsHook = (0, hooks_1.useFlags)();
|
|
13
12
|
const reactifySearchContext = (0, hooks_1.useReactifySearchContext)();
|
|
14
13
|
const reactiveProps = (0, props_1.getPropsSensorInventoryAvailable)({
|
|
15
14
|
config: reactifySearchContext.config,
|
|
@@ -18,9 +17,6 @@ const SensorInventoryAvailable = () => {
|
|
|
18
17
|
if (!reactiveProps) {
|
|
19
18
|
return null;
|
|
20
19
|
}
|
|
21
|
-
if (!flagsHook.flags["reactify-search:flag_sensor_inventoryavailable"]) {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
20
|
return (react_1.default.createElement(ReactiveComponent_1.default, Object.assign({}, reactiveProps)));
|
|
25
21
|
};
|
|
26
22
|
exports.SensorInventoryAvailable = SensorInventoryAvailable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SensorInventoryAvailable.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorInventoryAvailable.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,6HAAqG;AAErG,
|
|
1
|
+
{"version":3,"file":"SensorInventoryAvailable.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorInventoryAvailable.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,6HAAqG;AAErG,uCAAuD;AACvD,+CAAuE;AAEhE,MAAM,wBAAwB,GAAa,GAAG,EAAE;IACrD,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,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,8BAAC,2BAAiB,oBACZ,aAAa,EACjB,CACH,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,wBAAwB,4BAgBnC","sourcesContent":["import React from \"react\";\nimport ReactiveComponent from \"@usereactify/search-internals/lib/components/basic/ReactiveComponent\";\n\nimport { useReactifySearchContext } from \"../../hooks\";\nimport { getPropsSensorInventoryAvailable } from \"../../utility/props\";\n\nexport const SensorInventoryAvailable: React.FC = () => {\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 return (\n <ReactiveComponent\n {...reactiveProps}\n />\n );\n};\n"]}
|
|
@@ -9,15 +9,11 @@ const ReactiveComponent_1 = __importDefault(require("@usereactify/search-interna
|
|
|
9
9
|
const hooks_1 = require("../../hooks");
|
|
10
10
|
const props_1 = require("../../utility/props");
|
|
11
11
|
const SensorPublished = () => {
|
|
12
|
-
const flagsHook = (0, hooks_1.useFlags)();
|
|
13
12
|
const reactifySearchContext = (0, hooks_1.useReactifySearchContext)();
|
|
14
13
|
const reactiveProps = (0, props_1.getPropsSensorPublished)({
|
|
15
14
|
config: reactifySearchContext.config,
|
|
16
15
|
provider: reactifySearchContext.options,
|
|
17
16
|
});
|
|
18
|
-
if (!flagsHook.flags["reactify-search:flag_sensor_published"]) {
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
17
|
return (react_1.default.createElement(ReactiveComponent_1.default, Object.assign({}, reactiveProps)));
|
|
22
18
|
};
|
|
23
19
|
exports.SensorPublished = SensorPublished;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SensorPublished.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorPublished.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,6HAAqG;AAErG,
|
|
1
|
+
{"version":3,"file":"SensorPublished.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorPublished.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,6HAAqG;AAErG,uCAAuD;AACvD,+CAA8D;AAEvD,MAAM,eAAe,GAAa,GAAG,EAAE;IAC5C,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,OAAO,CACL,8BAAC,2BAAiB,oBACZ,aAAa,EACjB,CACH,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,eAAe,mBAY1B","sourcesContent":["import React from \"react\";\nimport ReactiveComponent from \"@usereactify/search-internals/lib/components/basic/ReactiveComponent\";\n\nimport { useReactifySearchContext } from \"../../hooks\";\nimport { getPropsSensorPublished } from \"../../utility/props\";\n\nexport const SensorPublished: React.FC = () => {\n const reactifySearchContext = useReactifySearchContext();\n const reactiveProps = getPropsSensorPublished({\n config: reactifySearchContext.config,\n provider: reactifySearchContext.options,\n });\n\n return (\n <ReactiveComponent\n {...reactiveProps}\n />\n );\n};\n"]}
|
|
@@ -9,7 +9,6 @@ const ahooks_1 = require("ahooks");
|
|
|
9
9
|
const DataSearch_1 = __importDefault(require("@usereactify/search-internals/lib/components/search/DataSearch"));
|
|
10
10
|
const hooks_1 = require("../../hooks");
|
|
11
11
|
const SensorSearchTerm = () => {
|
|
12
|
-
const flagsHook = (0, hooks_1.useFlags)();
|
|
13
12
|
const { options, config } = (0, hooks_1.useReactifySearchContext)();
|
|
14
13
|
const { track } = (0, hooks_1.useAnalytics)();
|
|
15
14
|
const { searchTerm } = (0, hooks_1.useSearch)();
|
|
@@ -46,15 +45,11 @@ const SensorSearchTerm = () => {
|
|
|
46
45
|
if (searchFields.length === 0) {
|
|
47
46
|
return null;
|
|
48
47
|
}
|
|
49
|
-
if (!flagsHook.flags["reactify-search:flag_sensor_searchterm"]) {
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
48
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
53
49
|
react_1.default.createElement(DataSearch_1.default, { fuzziness: 1, queryFormat: "and", autosuggest: false, value: searchTermDebounced, componentId: "SensorSearchTerm", style: { display: "none" }, dataField: searchFields.map((field) => field.field), fieldWeights: searchFields.map((field) => field.importance), customQuery: (value, props) => {
|
|
54
50
|
const valueNormal = value.toLowerCase().trim();
|
|
55
51
|
const conditions = [];
|
|
56
|
-
if (
|
|
57
|
-
valueNormal) {
|
|
52
|
+
if (valueNormal) {
|
|
58
53
|
if (options.market) {
|
|
59
54
|
conditions.push({
|
|
60
55
|
nested: {
|
|
@@ -92,12 +87,8 @@ const SensorSearchTerm = () => {
|
|
|
92
87
|
}
|
|
93
88
|
}
|
|
94
89
|
const fieldsPhrase = props.dataField
|
|
95
|
-
.filter((field) => !flagsHook.flags["reactify-search:flag_sensor_searchterm_phrase_synonyms"]
|
|
96
|
-
? !field.includes("synonym")
|
|
97
|
-
: true)
|
|
98
90
|
.map((field, index) => `${field}^${props.fieldWeights[index]}`);
|
|
99
|
-
if (
|
|
100
|
-
fieldsPhrase.length > 0) {
|
|
91
|
+
if (fieldsPhrase.length > 0) {
|
|
101
92
|
conditions.push({
|
|
102
93
|
multi_match: {
|
|
103
94
|
query: valueNormal,
|
|
@@ -108,13 +99,9 @@ const SensorSearchTerm = () => {
|
|
|
108
99
|
});
|
|
109
100
|
}
|
|
110
101
|
const fieldsPhrasePrefix = props.dataField
|
|
111
|
-
.filter((field) => !flagsHook.flags["reactify-search:flag_sensor_searchterm_phrase_prefix_synonyms"]
|
|
112
|
-
? !field.includes("synonym")
|
|
113
|
-
: true)
|
|
114
102
|
.map((field, index) => `${field}^${props.fieldWeights[index]}`)
|
|
115
103
|
.filter((field) => !field.includes("."));
|
|
116
|
-
if (
|
|
117
|
-
fieldsPhrasePrefix.length > 0) {
|
|
104
|
+
if (fieldsPhrasePrefix.length > 0) {
|
|
118
105
|
conditions.push({
|
|
119
106
|
multi_match: {
|
|
120
107
|
query: valueNormal,
|
|
@@ -125,12 +112,8 @@ const SensorSearchTerm = () => {
|
|
|
125
112
|
});
|
|
126
113
|
}
|
|
127
114
|
const fieldsCrossFields = props.dataField
|
|
128
|
-
.filter((field) => !flagsHook.flags["reactify-search:flag_sensor_searchterm_cross_fields_synonyms"]
|
|
129
|
-
? !field.includes("synonym")
|
|
130
|
-
: true)
|
|
131
115
|
.map((field, index) => `${field}^${props.fieldWeights[index]}`);
|
|
132
|
-
if (
|
|
133
|
-
fieldsCrossFields.length > 0) {
|
|
116
|
+
if (fieldsCrossFields.length > 0) {
|
|
134
117
|
conditions.push({
|
|
135
118
|
multi_match: {
|
|
136
119
|
query: valueNormal,
|
|
@@ -141,9 +124,6 @@ const SensorSearchTerm = () => {
|
|
|
141
124
|
});
|
|
142
125
|
}
|
|
143
126
|
const fieldsSpanFirst = props.dataField
|
|
144
|
-
.filter((field) => !flagsHook.flags["reactify-search:flag_sensor_searchterm_span_first_synonyms"]
|
|
145
|
-
? !field.includes("synonym")
|
|
146
|
-
: true)
|
|
147
127
|
.filter((field) => {
|
|
148
128
|
if (field.endsWith(".keyword")) {
|
|
149
129
|
return false;
|
|
@@ -158,8 +138,7 @@ const SensorSearchTerm = () => {
|
|
|
158
138
|
end: 1,
|
|
159
139
|
},
|
|
160
140
|
}));
|
|
161
|
-
if (
|
|
162
|
-
fieldsSpanFirst.length > 0) {
|
|
141
|
+
if (fieldsSpanFirst.length > 0) {
|
|
163
142
|
conditions.push(...fieldsSpanFirst);
|
|
164
143
|
}
|
|
165
144
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SensorSearchTerm.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorSearchTerm.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { useDebounceFn } from \"ahooks\";\nimport DataSearch from \"@usereactify/search-internals/lib/components/search/DataSearch\";\n\nimport {\n useAnalytics,\n useFlags,\n useReactifySearchContext,\n useSearch,\n} from \"../../hooks\";\n\nexport const SensorSearchTerm: React.FC = () => {\n const flagsHook = useFlags();\n const { options, config } = useReactifySearchContext();\n const { track } = useAnalytics();\n const { searchTerm } = useSearch();\n\n const [searchTermDebounced, setSearchTermDebounced] =\n React.useState<string>(searchTerm);\n\n // ignore search fields only set for instant search\n const searchFields = React.useMemo(() => {\n if (options.mode === \"search\") {\n return config.fields.filter((field) =>\n [\"always_search\", \"search_page\"].includes(field.searchType)\n );\n }\n\n if (options.mode === \"instant-search\") {\n return config.fields.filter((field) =>\n [\"always_search\", \"instant_search\"].includes(field.searchType)\n );\n }\n\n return [];\n }, [config.fields]);\n\n const { run: runDebouncedTriggerQuery, cancel: cancelDebouncedTriggerQuery } =\n useDebounceFn(\n (value: string) => {\n setSearchTermDebounced(value);\n\n let trimmedSearchTerm = searchTerm.trim();\n\n if (\n !trimmedSearchTerm ||\n (trimmedSearchTerm && trimmedSearchTerm.length < 3)\n ) {\n return;\n }\n\n track({\n eventName: \"search\",\n payload: {\n searchTerm: trimmedSearchTerm,\n },\n });\n },\n {\n wait: 300,\n }\n );\n\n React.useEffect(() => {\n runDebouncedTriggerQuery(searchTerm);\n }, [searchTerm]);\n\n if (searchFields.length === 0) {\n return null;\n }\n\n if (!flagsHook.flags[\"reactify-search:flag_sensor_searchterm\"]) {\n return null;\n }\n\n return (\n <>\n <DataSearch\n fuzziness={1}\n queryFormat=\"and\"\n autosuggest={false}\n value={searchTermDebounced}\n componentId=\"SensorSearchTerm\"\n style={{ display: \"none\" }}\n dataField={searchFields.map((field) => field.field)}\n fieldWeights={searchFields.map((field) => field.importance)}\n customQuery={(value, props) => {\n const valueNormal = value.toLowerCase().trim();\n const conditions: Array<unknown> = [];\n\n if (\n flagsHook.flags[\"reactify-search:flag_sensor_searchterm_value\"] &&\n valueNormal\n ) {\n if (options.market) {\n conditions.push({\n nested: {\n path: \"curations\",\n query: {\n bool: {\n must: [\n {\n term: {\n \"curations.searchTerm.keyword\": valueNormal,\n },\n },\n {\n term: {\n \"curations.markets.keyword\": options.market,\n },\n },\n ],\n },\n },\n },\n });\n } else {\n conditions.push({\n nested: {\n path: \"curations\",\n query: {\n term: {\n \"curations.searchTerm.keyword\": valueNormal,\n },\n },\n },\n });\n }\n }\n\n const fieldsPhrase = props.dataField\n .filter((field: string) =>\n !flagsHook.flags[\n \"reactify-search:flag_sensor_searchterm_phrase_synonyms\"\n ]\n ? !field.includes(\"synonym\")\n : true\n )\n .map(\n (field: string, index: number) =>\n `${field}^${props.fieldWeights[index]}`\n );\n if (\n flagsHook.flags[\"reactify-search:flag_sensor_searchterm_phrase\"] &&\n fieldsPhrase.length > 0\n ) {\n conditions.push({\n multi_match: {\n query: valueNormal,\n fields: fieldsPhrase,\n type: \"phrase\",\n operator: \"and\",\n },\n });\n }\n\n const fieldsPhrasePrefix = props.dataField\n .filter((field: string) =>\n !flagsHook.flags[\n \"reactify-search:flag_sensor_searchterm_phrase_prefix_synonyms\"\n ]\n ? !field.includes(\"synonym\")\n : true\n )\n .map(\n (field: string, index: number) =>\n `${field}^${props.fieldWeights[index]}`\n )\n .filter((field: string) => !field.includes(\".\"));\n\n if (\n flagsHook.flags[\n \"reactify-search:flag_sensor_searchterm_phrase_prefix\"\n ] &&\n fieldsPhrasePrefix.length > 0\n ) {\n conditions.push({\n multi_match: {\n query: valueNormal,\n fields: fieldsPhrasePrefix,\n type: \"phrase_prefix\",\n operator: \"and\",\n },\n });\n }\n\n const fieldsCrossFields = props.dataField\n .filter((field: string) =>\n !flagsHook.flags[\n \"reactify-search:flag_sensor_searchterm_cross_fields_synonyms\"\n ]\n ? !field.includes(\"synonym\")\n : true\n )\n .map(\n (field: string, index: number) =>\n `${field}^${props.fieldWeights[index]}`\n );\n if (\n flagsHook.flags[\n \"reactify-search:flag_sensor_searchterm_cross_fields\"\n ] &&\n fieldsCrossFields.length > 0\n ) {\n conditions.push({\n multi_match: {\n query: valueNormal,\n fields: fieldsCrossFields,\n type: \"cross_fields\",\n operator: \"and\",\n },\n });\n }\n\n const fieldsSpanFirst: any = props.dataField\n .filter((field: string) =>\n !flagsHook.flags[\n \"reactify-search:flag_sensor_searchterm_span_first_synonyms\"\n ]\n ? !field.includes(\"synonym\")\n : true\n )\n .filter((field: string) => {\n if (field.endsWith(\".keyword\")) {\n return false;\n }\n\n return true;\n })\n .map((field: string) => ({\n span_first: {\n match: {\n span_term: { [`${field}`]: valueNormal },\n },\n end: 1,\n },\n }));\n if (\n flagsHook.flags[\n \"reactify-search:flag_sensor_searchterm_span_first\"\n ] &&\n fieldsSpanFirst.length > 0\n ) {\n conditions.push(...fieldsSpanFirst);\n }\n\n return {\n query: {\n bool: {\n should: conditions,\n minimum_should_match: \"1\",\n },\n },\n };\n }}\n />\n </>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"SensorSearchTerm.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorSearchTerm.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { useDebounceFn } from \"ahooks\";\nimport DataSearch from \"@usereactify/search-internals/lib/components/search/DataSearch\";\n\nimport { useAnalytics, useReactifySearchContext, useSearch } from \"../../hooks\";\n\nexport const SensorSearchTerm: React.FC = () => {\n const { options, config } = useReactifySearchContext();\n const { track } = useAnalytics();\n const { searchTerm } = useSearch();\n\n const [searchTermDebounced, setSearchTermDebounced] =\n React.useState<string>(searchTerm);\n\n // ignore search fields only set for instant search\n const searchFields = React.useMemo(() => {\n if (options.mode === \"search\") {\n return config.fields.filter((field) =>\n [\"always_search\", \"search_page\"].includes(field.searchType)\n );\n }\n\n if (options.mode === \"instant-search\") {\n return config.fields.filter((field) =>\n [\"always_search\", \"instant_search\"].includes(field.searchType)\n );\n }\n\n return [];\n }, [config.fields]);\n\n const { run: runDebouncedTriggerQuery, cancel: cancelDebouncedTriggerQuery } =\n useDebounceFn(\n (value: string) => {\n setSearchTermDebounced(value);\n\n let trimmedSearchTerm = searchTerm.trim();\n\n if (\n !trimmedSearchTerm ||\n (trimmedSearchTerm && trimmedSearchTerm.length < 3)\n ) {\n return;\n }\n\n track({\n eventName: \"search\",\n payload: {\n searchTerm: trimmedSearchTerm,\n },\n });\n },\n {\n wait: 300,\n }\n );\n\n React.useEffect(() => {\n runDebouncedTriggerQuery(searchTerm);\n }, [searchTerm]);\n\n if (searchFields.length === 0) {\n return null;\n }\n\n return (\n <>\n <DataSearch\n fuzziness={1}\n queryFormat=\"and\"\n autosuggest={false}\n value={searchTermDebounced}\n componentId=\"SensorSearchTerm\"\n style={{ display: \"none\" }}\n dataField={searchFields.map((field) => field.field)}\n fieldWeights={searchFields.map((field) => field.importance)}\n customQuery={(value, props) => {\n const valueNormal = value.toLowerCase().trim();\n const conditions: Array<unknown> = [];\n\n if (valueNormal) {\n if (options.market) {\n conditions.push({\n nested: {\n path: \"curations\",\n query: {\n bool: {\n must: [\n {\n term: {\n \"curations.searchTerm.keyword\": valueNormal,\n },\n },\n {\n term: {\n \"curations.markets.keyword\": options.market,\n },\n },\n ],\n },\n },\n },\n });\n } else {\n conditions.push({\n nested: {\n path: \"curations\",\n query: {\n term: {\n \"curations.searchTerm.keyword\": valueNormal,\n },\n },\n },\n });\n }\n }\n\n const fieldsPhrase = props.dataField\n .map(\n (field: string, index: number) =>\n `${field}^${props.fieldWeights[index]}`\n );\n if (fieldsPhrase.length > 0) {\n conditions.push({\n multi_match: {\n query: valueNormal,\n fields: fieldsPhrase,\n type: \"phrase\",\n operator: \"and\",\n },\n });\n }\n\n const fieldsPhrasePrefix = props.dataField\n .map(\n (field: string, index: number) =>\n `${field}^${props.fieldWeights[index]}`\n )\n .filter((field: string) => !field.includes(\".\"));\n\n if (fieldsPhrasePrefix.length > 0) {\n conditions.push({\n multi_match: {\n query: valueNormal,\n fields: fieldsPhrasePrefix,\n type: \"phrase_prefix\",\n operator: \"and\",\n },\n });\n }\n\n const fieldsCrossFields = props.dataField\n .map(\n (field: string, index: number) =>\n `${field}^${props.fieldWeights[index]}`\n );\n if (fieldsCrossFields.length > 0) {\n conditions.push({\n multi_match: {\n query: valueNormal,\n fields: fieldsCrossFields,\n type: \"cross_fields\",\n operator: \"and\",\n },\n });\n }\n\n const fieldsSpanFirst: any = props.dataField\n .filter((field: string) => {\n if (field.endsWith(\".keyword\")) {\n return false;\n }\n\n return true;\n })\n .map((field: string) => ({\n span_first: {\n match: {\n span_term: { [`${field}`]: valueNormal },\n },\n end: 1,\n },\n }));\n if (fieldsSpanFirst.length > 0) {\n conditions.push(...fieldsSpanFirst);\n }\n\n return {\n query: {\n bool: {\n should: conditions,\n minimum_should_match: \"1\",\n },\n },\n };\n }}\n />\n </>\n );\n};\n"]}
|
|
@@ -9,7 +9,6 @@ const ReactiveComponent_1 = __importDefault(require("@usereactify/search-interna
|
|
|
9
9
|
const hooks_1 = require("../../hooks");
|
|
10
10
|
const props_1 = require("../../utility/props");
|
|
11
11
|
const SensorSort = () => {
|
|
12
|
-
const flagsHook = (0, hooks_1.useFlags)();
|
|
13
12
|
const reactifySearchContext = (0, hooks_1.useReactifySearchContext)();
|
|
14
13
|
const { sortOption } = (0, hooks_1.useSortBy)();
|
|
15
14
|
const { searchTerm } = (0, hooks_1.useSearch)();
|
|
@@ -19,9 +18,6 @@ const SensorSort = () => {
|
|
|
19
18
|
sortOption: sortOption === null || sortOption === void 0 ? void 0 : sortOption.handle,
|
|
20
19
|
searchTerm: searchTerm,
|
|
21
20
|
});
|
|
22
|
-
if (!flagsHook.flags["reactify-search:flag_sensor_sort"]) {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
21
|
return (react_1.default.createElement(ReactiveComponent_1.default, Object.assign({}, reactiveProps)));
|
|
26
22
|
};
|
|
27
23
|
exports.SensorSort = SensorSort;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SensorSort.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorSort.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,6HAAqG;AAErG,
|
|
1
|
+
{"version":3,"file":"SensorSort.js","sourceRoot":"","sources":["../../../../src/components/Sensor/SensorSort.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,6HAAqG;AAErG,uCAA6E;AAC7E,+CAAyD;AAElD,MAAM,UAAU,GAAa,GAAG,EAAE;IACvC,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,OAAO,CACL,8BAAC,2BAAiB,oBACZ,aAAa,EACjB,CACH,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,UAAU,cAiBrB","sourcesContent":["import React from \"react\";\nimport ReactiveComponent from \"@usereactify/search-internals/lib/components/basic/ReactiveComponent\";\n\nimport { useReactifySearchContext, useSortBy, useSearch } from \"../../hooks\";\nimport { getPropsSensorSort } from \"../../utility/props\";\n\nexport const SensorSort: React.FC = () => {\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 return (\n <ReactiveComponent\n {...reactiveProps}\n />\n );\n};\n"]}
|
package/dist/src/hooks/index.js
CHANGED
|
@@ -31,6 +31,5 @@ __exportStar(require("./useFilterCollapsedState"), exports);
|
|
|
31
31
|
__exportStar(require("./useConfig"), exports);
|
|
32
32
|
__exportStar(require("./useReactifySearchContext"), exports);
|
|
33
33
|
__exportStar(require("./useResults"), exports);
|
|
34
|
-
__exportStar(require("./useFlags"), exports);
|
|
35
34
|
__exportStar(require("./useIndices"), exports);
|
|
36
35
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
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
|
|
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,+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 \"./useIndices\";\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import currency from "currency.js";
|
|
2
2
|
import { ElasticProduct } from "../types/elastic";
|
|
3
|
-
export
|
|
3
|
+
export type UseProductPrice = {
|
|
4
4
|
price?: currency;
|
|
5
5
|
onSale: boolean;
|
|
6
6
|
currencyCode: string;
|
|
@@ -8,3 +8,4 @@ export declare const useProductPrice: (product: ElasticProduct) => {
|
|
|
8
8
|
formattedPrice?: string;
|
|
9
9
|
formattedCompareAtPrice?: string;
|
|
10
10
|
};
|
|
11
|
+
export declare const useProductPrice: (product: ElasticProduct) => UseProductPrice;
|
|
@@ -6,21 +6,47 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.useProductPrice = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const currency_js_1 = __importDefault(require("currency.js"));
|
|
9
|
+
const useReactifySearchContext_1 = require("./useReactifySearchContext");
|
|
9
10
|
const useProductPrice = (product) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
|
|
11
|
+
const reactifySearchContext = (0, useReactifySearchContext_1.useReactifySearchContext)();
|
|
12
|
+
const value = react_1.default.useMemo(() => {
|
|
13
|
+
const getCurrencyCode = () => {
|
|
14
|
+
var _a, _b, _c;
|
|
15
|
+
const currencyCode = (_b = (_a = product.presentment_price_ranges) === null || _a === void 0 ? void 0 : _a.min_variant_price[0].currency_code) !== null && _b !== void 0 ? _b : "AUD";
|
|
16
|
+
const currencyCodeMarket = (_c = reactifySearchContext.config.markets.find((market) => market.id === reactifySearchContext.options.market)) === null || _c === void 0 ? void 0 : _c.currencyCode;
|
|
17
|
+
return currencyCodeMarket !== null && currencyCodeMarket !== void 0 ? currencyCodeMarket : currencyCode;
|
|
18
|
+
};
|
|
19
|
+
const getPriceDefault = () => {
|
|
20
|
+
var _a, _b, _c, _d;
|
|
21
|
+
if ((_a = product.variants) === null || _a === void 0 ? void 0 : _a[0].price) {
|
|
22
|
+
return {
|
|
23
|
+
price: (_b = product.variants) === null || _b === void 0 ? void 0 : _b[0].price,
|
|
24
|
+
compareAtPrice: (_d = (_c = product.variants) === null || _c === void 0 ? void 0 : _c[0].compare_at_price) !== null && _d !== void 0 ? _d : undefined,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return;
|
|
28
|
+
};
|
|
29
|
+
const getPriceMarket = () => {
|
|
30
|
+
var _a, _b, _c, _d;
|
|
31
|
+
const currencyCode = getCurrencyCode();
|
|
32
|
+
if (!currencyCode) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const presentmentPrice = (_b = (_a = product.variants) === null || _a === void 0 ? void 0 : _a[0].presentment_prices) === null || _b === void 0 ? void 0 : _b.find((item) => item.price.currency_code === currencyCode);
|
|
36
|
+
if (!presentmentPrice) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
14
39
|
return {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
currencyCode: "AUD",
|
|
18
|
-
compareAtPrice: undefined,
|
|
40
|
+
price: presentmentPrice.price.amount,
|
|
41
|
+
compareAtPrice: (_d = (_c = presentmentPrice.compare_at_price) === null || _c === void 0 ? void 0 : _c.amount) !== null && _d !== void 0 ? _d : undefined,
|
|
19
42
|
};
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
43
|
+
};
|
|
44
|
+
const getPrice = () => {
|
|
45
|
+
var _a;
|
|
46
|
+
return (_a = getPriceMarket()) !== null && _a !== void 0 ? _a : getPriceDefault();
|
|
47
|
+
};
|
|
48
|
+
const priceData = getPrice();
|
|
49
|
+
if (!priceData) {
|
|
24
50
|
return {
|
|
25
51
|
onSale: false,
|
|
26
52
|
price: undefined,
|
|
@@ -28,27 +54,20 @@ const useProductPrice = (product) => {
|
|
|
28
54
|
compareAtPrice: undefined,
|
|
29
55
|
};
|
|
30
56
|
}
|
|
31
|
-
const currencyCode = (
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const formattedPrice = price ? formatPrice(price, currencyCode) : undefined;
|
|
36
|
-
const compareAtPrice = ((_d = priceSet.compare_at_price) === null || _d === void 0 ? void 0 : _d.amount)
|
|
37
|
-
? (0, currency_js_1.default)(priceSet.compare_at_price.amount)
|
|
38
|
-
: undefined;
|
|
39
|
-
const formattedCompareAtPrice = compareAtPrice
|
|
40
|
-
? formatPrice(compareAtPrice, currencyCode)
|
|
41
|
-
: undefined;
|
|
42
|
-
const onSale = !!compareAtPrice && !!price && compareAtPrice.intValue > price.intValue;
|
|
57
|
+
const currencyCode = getCurrencyCode();
|
|
58
|
+
const onSale = Boolean(priceData.compareAtPrice && priceData.compareAtPrice > priceData.price);
|
|
59
|
+
const priceAsCurrency = (0, currency_js_1.default)(priceData.price);
|
|
60
|
+
const compareAtPriceAsCurrency = priceData.compareAtPrice ? (0, currency_js_1.default)(priceData.compareAtPrice) : undefined;
|
|
43
61
|
return {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
62
|
+
onSale: onSale,
|
|
63
|
+
price: priceAsCurrency,
|
|
64
|
+
compareAtPrice: compareAtPriceAsCurrency,
|
|
65
|
+
formattedPrice: formatPrice(priceAsCurrency, currencyCode),
|
|
66
|
+
formattedCompareAtPrice: compareAtPriceAsCurrency ? formatPrice(compareAtPriceAsCurrency, currencyCode) : undefined,
|
|
67
|
+
currencyCode: currencyCode,
|
|
50
68
|
};
|
|
51
|
-
}, [product]);
|
|
69
|
+
}, [product, reactifySearchContext.options.market, reactifySearchContext.config.markets]);
|
|
70
|
+
return value;
|
|
52
71
|
};
|
|
53
72
|
exports.useProductPrice = useProductPrice;
|
|
54
73
|
const formatPrice = (price, currencyCode) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProductPrice.js","sourceRoot":"","sources":["../../../src/hooks/useProductPrice.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,8DAAmC;
|
|
1
|
+
{"version":3,"file":"useProductPrice.js","sourceRoot":"","sources":["../../../src/hooks/useProductPrice.ts"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport currency from \"currency.js\";\n\nimport { ElasticProduct } from \"../types/elastic\";\nimport { useReactifySearchContext } from \"./useReactifySearchContext\";\n\nexport type UseProductPrice = {\n price?: currency;\n onSale: boolean;\n currencyCode: string;\n compareAtPrice?: currency;\n formattedPrice?: string;\n formattedCompareAtPrice?: string;\n};\n\nexport const useProductPrice = (product: ElasticProduct): UseProductPrice => {\n const reactifySearchContext = useReactifySearchContext();\n\n const value = React.useMemo<UseProductPrice>(() => {\n const getCurrencyCode = (): string => {\n const currencyCode = product.presentment_price_ranges?.min_variant_price[0].currency_code ?? \"AUD\";\n const currencyCodeMarket = reactifySearchContext.config.markets.find((market) => market.id === reactifySearchContext.options.market)?.currencyCode;\n \n return currencyCodeMarket ?? currencyCode;\n }\n \n const getPriceDefault = (): {\n price: number;\n compareAtPrice: number | undefined;\n } | undefined => {\n if (product.variants?.[0].price) {\n return {\n price: product.variants?.[0].price,\n compareAtPrice: product.variants?.[0].compare_at_price ?? undefined,\n };\n }\n \n return;\n }\n \n const getPriceMarket = (): {\n price: number;\n compareAtPrice: number | undefined;\n } | undefined => {\n const currencyCode = getCurrencyCode();\n if (!currencyCode) {\n return;\n }\n \n const presentmentPrice = product.variants?.[0].presentment_prices?.find((item) => item.price.currency_code === currencyCode);\n if (!presentmentPrice) {\n return;\n }\n \n return {\n price: presentmentPrice.price.amount,\n compareAtPrice: presentmentPrice.compare_at_price?.amount ?? undefined,\n };\n };\n \n const getPrice = (): {\n price: number;\n compareAtPrice: number | undefined;\n } | undefined => {\n return getPriceMarket() ?? getPriceDefault();\n }\n\n const priceData = getPrice();\n if (!priceData) {\n return {\n onSale: false,\n price: undefined,\n currencyCode: \"AUD\",\n compareAtPrice: undefined,\n };\n }\n\n const currencyCode = getCurrencyCode();\n const onSale = Boolean(priceData.compareAtPrice && priceData.compareAtPrice > priceData.price);\n const priceAsCurrency = currency(priceData.price);\n const compareAtPriceAsCurrency = priceData.compareAtPrice ? currency(priceData.compareAtPrice) : undefined;\n\n return {\n onSale: onSale,\n price: priceAsCurrency,\n compareAtPrice: compareAtPriceAsCurrency,\n formattedPrice: formatPrice(priceAsCurrency, currencyCode),\n formattedCompareAtPrice: compareAtPriceAsCurrency ? formatPrice(compareAtPriceAsCurrency, currencyCode) : undefined,\n currencyCode: currencyCode,\n }\n }, [product, reactifySearchContext.options.market, reactifySearchContext.config.markets]);\n\n return value;\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,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Config, ConfigCuration, ConfigRedirect, ReactivesearchResultProps } from "../types";
|
|
3
|
-
import { Flags } from "./useFlags";
|
|
4
3
|
export type ReactifySearchMode = "search" | "collection" | "instant-search";
|
|
5
4
|
export declare const ReactifySearchContext: React.Context<{
|
|
6
5
|
config: Config;
|
|
@@ -17,7 +16,6 @@ export declare const ReactifySearchContext: React.Context<{
|
|
|
17
16
|
additionalComponentIds?: Array<string>;
|
|
18
17
|
includeFields?: Array<string>;
|
|
19
18
|
excludeFields?: Array<string>;
|
|
20
|
-
flags?: Record<Flags, boolean>;
|
|
21
19
|
query?: Record<string, string>;
|
|
22
20
|
preload?: {
|
|
23
21
|
config: Config;
|
|
@@ -65,7 +63,6 @@ export declare const useReactifySearchContext: () => {
|
|
|
65
63
|
additionalComponentIds?: Array<string>;
|
|
66
64
|
includeFields?: Array<string>;
|
|
67
65
|
excludeFields?: Array<string>;
|
|
68
|
-
flags?: Record<Flags, boolean>;
|
|
69
66
|
query?: Record<string, string>;
|
|
70
67
|
preload?: {
|
|
71
68
|
config: Config;
|