@usereactify/search 5.0.0-beta.10 → 5.0.0-beta.13

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.
Files changed (127) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +3 -21
  3. package/dist/package.json +1 -1
  4. package/dist/src/components/Example/ExampleFilterList.js +1 -1
  5. package/dist/src/components/Example/ExampleFilterList.js.map +1 -1
  6. package/dist/src/components/Example/ExampleFilterRange.js +1 -1
  7. package/dist/src/components/Example/ExampleFilterRange.js.map +1 -1
  8. package/dist/src/components/Example/ExampleFilterSlider.js +1 -1
  9. package/dist/src/components/Example/ExampleFilterSlider.js.map +1 -1
  10. package/dist/src/components/Example/ExampleFilters.d.ts +4 -0
  11. package/dist/src/components/Example/{ExampleFilterStack.js → ExampleFilters.js} +6 -5
  12. package/dist/src/components/Example/ExampleFilters.js.map +1 -0
  13. package/dist/src/components/Example/ExampleResultCardCallout.js +1 -1
  14. package/dist/src/components/Example/ExampleResultCardCallout.js.map +1 -1
  15. package/dist/src/components/Example/ExampleResultCardProduct.js +1 -1
  16. package/dist/src/components/Example/ExampleResultCardProduct.js.map +1 -1
  17. package/dist/src/components/Example/ExampleSortBy.d.ts +4 -0
  18. package/dist/src/components/Example/{ExampleSortby.js → ExampleSortBy.js} +4 -4
  19. package/dist/src/components/Example/{ExampleSortby.js.map → ExampleSortBy.js.map} +1 -1
  20. package/dist/src/components/Example/index.d.ts +2 -2
  21. package/dist/src/components/Example/index.js +2 -2
  22. package/dist/src/components/Example/index.js.map +1 -1
  23. package/dist/src/components/Filter/Filter.js +7 -19
  24. package/dist/src/components/Filter/Filter.js.map +1 -1
  25. package/dist/src/components/Filter/{FilterStack.d.ts → Filters.d.ts} +2 -2
  26. package/dist/src/components/Filter/{FilterStack.js → Filters.js} +7 -7
  27. package/dist/src/components/Filter/Filters.js.map +1 -0
  28. package/dist/src/components/Filter/index.d.ts +1 -1
  29. package/dist/src/components/Filter/index.js +1 -1
  30. package/dist/src/components/Filter/index.js.map +1 -1
  31. package/dist/src/components/{ReactifySearchBase/ReactifySearchBase.d.ts → ReactifySearchProvider/ReactifySearchProvider.d.ts} +5 -9
  32. package/dist/src/components/{ReactifySearchBase/ReactifySearchBase.js → ReactifySearchProvider/ReactifySearchProvider.js} +24 -20
  33. package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js.map +1 -0
  34. package/dist/src/components/ReactifySearchProvider/index.d.ts +1 -0
  35. package/dist/src/components/{ReactifySearchBase → ReactifySearchProvider}/index.js +1 -1
  36. package/dist/src/components/ReactifySearchProvider/index.js.map +1 -0
  37. package/dist/src/components/Result/{ResultStack.d.ts → Results.d.ts} +2 -2
  38. package/dist/src/components/Result/{ResultStack.js → Results.js} +44 -27
  39. package/dist/src/components/Result/Results.js.map +1 -0
  40. package/dist/src/components/Result/index.d.ts +1 -1
  41. package/dist/src/components/Result/index.js +1 -1
  42. package/dist/src/components/Result/index.js.map +1 -1
  43. package/dist/src/components/Sensor/SensorCollection.js +2 -2
  44. package/dist/src/components/Sensor/SensorCollection.js.map +1 -1
  45. package/dist/src/components/Sensor/SensorInventoryAvailable.js +1 -1
  46. package/dist/src/components/Sensor/SensorInventoryAvailable.js.map +1 -1
  47. package/dist/src/components/Sensor/SensorSort.js +13 -13
  48. package/dist/src/components/Sensor/SensorSort.js.map +1 -1
  49. package/dist/src/components/Sensor/Sensors.d.ts +3 -0
  50. package/dist/src/components/Sensor/{SensorStack.js → Sensors.js} +4 -4
  51. package/dist/src/components/Sensor/Sensors.js.map +1 -0
  52. package/dist/src/components/Sensor/index.d.ts +1 -1
  53. package/dist/src/components/Sensor/index.js +1 -1
  54. package/dist/src/components/Sensor/index.js.map +1 -1
  55. package/dist/src/components/SortBy/SortBy.d.ts +7 -0
  56. package/dist/src/components/{Sortby/Sortby.js → SortBy/SortBy.js} +7 -7
  57. package/dist/src/components/SortBy/SortBy.js.map +1 -0
  58. package/dist/src/components/SortBy/index.d.ts +1 -0
  59. package/dist/src/components/{Sortby → SortBy}/index.js +1 -1
  60. package/dist/src/components/{Sortby → SortBy}/index.js.map +1 -1
  61. package/dist/src/components/index.d.ts +2 -2
  62. package/dist/src/components/index.js +2 -2
  63. package/dist/src/components/index.js.map +1 -1
  64. package/dist/src/hooks/index.d.ts +2 -3
  65. package/dist/src/hooks/index.js +2 -3
  66. package/dist/src/hooks/index.js.map +1 -1
  67. package/dist/src/hooks/reactivesearch/index.d.ts +3 -3
  68. package/dist/src/hooks/reactivesearch/index.js +3 -3
  69. package/dist/src/hooks/reactivesearch/index.js.map +1 -1
  70. package/dist/src/hooks/reactivesearch/useReactiveBaseProps.js +2 -1
  71. package/dist/src/hooks/reactivesearch/useReactiveBaseProps.js.map +1 -1
  72. package/dist/src/hooks/reactivesearch/useReactiveDataSearchProps.d.ts +1 -1
  73. package/dist/src/hooks/reactivesearch/useReactiveDataSearchProps.js +2 -1
  74. package/dist/src/hooks/reactivesearch/useReactiveDataSearchProps.js.map +1 -1
  75. package/dist/src/hooks/reactivesearch/useReactiveFilterListProps.js +2 -1
  76. package/dist/src/hooks/reactivesearch/useReactiveFilterListProps.js.map +1 -1
  77. package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.js +2 -1
  78. package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.js.map +1 -1
  79. package/dist/src/hooks/reactivesearch/useReactiveFilterSharedProps.js +2 -1
  80. package/dist/src/hooks/reactivesearch/useReactiveFilterSharedProps.js.map +1 -1
  81. package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.js +2 -1
  82. package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.js.map +1 -1
  83. package/dist/src/hooks/reactivesearch/useReactiveReactProp.js +4 -4
  84. package/dist/src/hooks/reactivesearch/useReactiveReactProp.js.map +1 -1
  85. package/dist/src/hooks/reactivesearch/useReactiveReactiveListProps.d.ts +5 -0
  86. package/dist/src/hooks/reactivesearch/{useReactiveResultStackProps.js → useReactiveReactiveListProps.js} +7 -6
  87. package/dist/src/hooks/reactivesearch/useReactiveReactiveListProps.js.map +1 -0
  88. package/dist/src/hooks/useCuration.js +2 -6
  89. package/dist/src/hooks/useCuration.js.map +1 -1
  90. package/dist/src/hooks/useFilterListProps.js +36 -9
  91. package/dist/src/hooks/useFilterListProps.js.map +1 -1
  92. package/dist/src/hooks/useFilters.d.ts +3 -2
  93. package/dist/src/hooks/useFilters.js +45 -11
  94. package/dist/src/hooks/useFilters.js.map +1 -1
  95. package/dist/src/hooks/usePaginationLoadMore.js +1 -1
  96. package/dist/src/hooks/usePaginationLoadMore.js.map +1 -1
  97. package/dist/src/hooks/useReactifySearchContext.d.ts +4 -12
  98. package/dist/src/hooks/useReactifySearchContext.js.map +1 -1
  99. package/dist/src/hooks/useSearch.d.ts +1 -1
  100. package/dist/src/hooks/useSearch.js +25 -5
  101. package/dist/src/hooks/useSearch.js.map +1 -1
  102. package/dist/src/hooks/{useSortby.d.ts → useSortBy.d.ts} +1 -1
  103. package/dist/src/hooks/{useSortby.js → useSortBy.js} +5 -7
  104. package/dist/src/hooks/useSortBy.js.map +1 -0
  105. package/dist/src/utility/debug.d.ts +3 -1
  106. package/dist/src/utility/debug.js +6 -2
  107. package/dist/src/utility/debug.js.map +1 -1
  108. package/package.json +1 -1
  109. package/dist/src/components/Example/ExampleFilterStack.d.ts +0 -4
  110. package/dist/src/components/Example/ExampleFilterStack.js.map +0 -1
  111. package/dist/src/components/Example/ExampleSortby.d.ts +0 -4
  112. package/dist/src/components/Filter/FilterStack.js.map +0 -1
  113. package/dist/src/components/ReactifySearchBase/ReactifySearchBase.js.map +0 -1
  114. package/dist/src/components/ReactifySearchBase/index.d.ts +0 -1
  115. package/dist/src/components/ReactifySearchBase/index.js.map +0 -1
  116. package/dist/src/components/Result/ResultStack.js.map +0 -1
  117. package/dist/src/components/Sensor/SensorStack.d.ts +0 -3
  118. package/dist/src/components/Sensor/SensorStack.js.map +0 -1
  119. package/dist/src/components/Sortby/Sortby.d.ts +0 -7
  120. package/dist/src/components/Sortby/Sortby.js.map +0 -1
  121. package/dist/src/components/Sortby/index.d.ts +0 -1
  122. package/dist/src/hooks/reactivesearch/useReactiveResultStackProps.d.ts +0 -17
  123. package/dist/src/hooks/reactivesearch/useReactiveResultStackProps.js.map +0 -1
  124. package/dist/src/hooks/useFilterStack.d.ts +0 -4
  125. package/dist/src/hooks/useFilterStack.js +0 -52
  126. package/dist/src/hooks/useFilterStack.js.map +0 -1
  127. package/dist/src/hooks/useSortby.js.map +0 -1
@@ -1,52 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useFilterStack = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const hooks_1 = require("../hooks");
9
- const utility_1 = require("../utility");
10
- const useFilterStack = () => {
11
- const { options, config } = (0, hooks_1.useReactifySearchContext)();
12
- const filterStack = react_1.default.useMemo(() => {
13
- if (options.mode === "instant-search") {
14
- return undefined;
15
- }
16
- // select filters by type
17
- const matchingFilterStacks = config.filters.filter((filter) => filter.type === options.mode);
18
- // select filter stack by handle if provided
19
- if (options.filterStackHandle) {
20
- const matchingFilterStack = matchingFilterStacks.find((filterStack) => options.filterStackHandle === filterStack.handle);
21
- if (matchingFilterStack) {
22
- return matchingFilterStack;
23
- }
24
- }
25
- // select filter stack by collection if provided
26
- if (options.mode === "collection" && options.collection.handle) {
27
- const matchingFilterStack = matchingFilterStacks.find((filterStack) => { var _a; return (_a = filterStack.collections) === null || _a === void 0 ? void 0 : _a.includes(options.collection.handle); });
28
- if (matchingFilterStack) {
29
- return matchingFilterStack;
30
- }
31
- }
32
- // select filter with "default" handle
33
- let matchingFilterStack = matchingFilterStacks.find((filterStack) => filterStack.handle === "default");
34
- if (matchingFilterStack) {
35
- return matchingFilterStack;
36
- }
37
- // select any filter with "default" handle
38
- matchingFilterStack = config.filters.find((filterStack) => filterStack.handle === "default");
39
- if (matchingFilterStack) {
40
- return matchingFilterStack;
41
- }
42
- // select any available filter as a last resort
43
- matchingFilterStack = config.filters[0];
44
- return matchingFilterStack;
45
- }, [config, options.mode === "collection" ? options.collection : undefined]);
46
- utility_1.debug.hook("useFilterStack", "filterStack", filterStack);
47
- return {
48
- filterStack: filterStack,
49
- };
50
- };
51
- exports.useFilterStack = useFilterStack;
52
- //# sourceMappingURL=useFilterStack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFilterStack.js","sourceRoot":"","sources":["../../../src/hooks/useFilterStack.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,oCAAoD;AACpD,wCAAmC;AAE5B,MAAM,cAAc,GAAG,GAE5B,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAA,gCAAwB,GAAE,CAAC;IAEvD,MAAM,WAAW,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE;YACrC,OAAO,SAAS,CAAC;SAClB;QAED,yBAAyB;QACzB,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAChD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CACzC,CAAC;QAEF,4CAA4C;QAC5C,IAAI,OAAO,CAAC,iBAAiB,EAAE;YAC7B,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CACnD,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,KAAK,WAAW,CAAC,MAAM,CAClE,CAAC;YACF,IAAI,mBAAmB,EAAE;gBACvB,OAAO,mBAAmB,CAAC;aAC5B;SACF;QAED,gDAAgD;QAChD,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE;YAC9D,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,WACpE,OAAA,MAAA,WAAW,CAAC,WAAW,0CAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA,EAAA,CAC7D,CAAC;YACF,IAAI,mBAAmB,EAAE;gBACvB,OAAO,mBAAmB,CAAC;aAC5B;SACF;QAED,sCAAsC;QACtC,IAAI,mBAAmB,GAAG,oBAAoB,CAAC,IAAI,CACjD,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,KAAK,SAAS,CAClD,CAAC;QACF,IAAI,mBAAmB,EAAE;YACvB,OAAO,mBAAmB,CAAC;SAC5B;QAED,0CAA0C;QAC1C,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CACvC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,KAAK,SAAS,CAClD,CAAC;QACF,IAAI,mBAAmB,EAAE;YACvB,OAAO,mBAAmB,CAAC;SAC5B;QAED,+CAA+C;QAC/C,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAExC,OAAO,mBAAmB,CAAC;IAC7B,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAE7E,eAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IAEzD,OAAO;QACL,WAAW,EAAE,WAAW;KACzB,CAAC;AACJ,CAAC,CAAC;AA9DW,QAAA,cAAc,kBA8DzB","sourcesContent":["import React from \"react\";\n\nimport { ConfigFilter } from \"../types\";\nimport { useReactifySearchContext } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nexport const useFilterStack = (): {\n filterStack?: ConfigFilter;\n} => {\n const { options, config } = useReactifySearchContext();\n\n const filterStack = React.useMemo(() => {\n if (options.mode === \"instant-search\") {\n return undefined;\n }\n\n // select filters by type\n const matchingFilterStacks = config.filters.filter(\n (filter) => filter.type === options.mode\n );\n\n // select filter stack by handle if provided\n if (options.filterStackHandle) {\n const matchingFilterStack = matchingFilterStacks.find(\n (filterStack) => options.filterStackHandle === filterStack.handle\n );\n if (matchingFilterStack) {\n return matchingFilterStack;\n }\n }\n\n // select filter stack by collection if provided\n if (options.mode === \"collection\" && options.collection.handle) {\n const matchingFilterStack = matchingFilterStacks.find((filterStack) =>\n filterStack.collections?.includes(options.collection.handle)\n );\n if (matchingFilterStack) {\n return matchingFilterStack;\n }\n }\n\n // select filter with \"default\" handle\n let matchingFilterStack = matchingFilterStacks.find(\n (filterStack) => filterStack.handle === \"default\"\n );\n if (matchingFilterStack) {\n return matchingFilterStack;\n }\n\n // select any filter with \"default\" handle\n matchingFilterStack = config.filters.find(\n (filterStack) => filterStack.handle === \"default\"\n );\n if (matchingFilterStack) {\n return matchingFilterStack;\n }\n\n // select any available filter as a last resort\n matchingFilterStack = config.filters[0];\n\n return matchingFilterStack;\n }, [config, options.mode === \"collection\" ? options.collection : undefined]);\n\n debug.hook(\"useFilterStack\", \"filterStack\", filterStack);\n\n return {\n filterStack: filterStack,\n };\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSortby.js","sourceRoot":"","sources":["../../../src/hooks/useSortby.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAG1B,oCAAkE;AAClE,wCAAmC;AAE5B,MAAM,SAAS,GAAG,GAOvB,EAAE;IACF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,gCAAwB,GAAE,CAAC;IAC/D,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC;IAEjC,MAAM,WAAW,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,OAAO,MAAM,CAAC,IAAI;aACf,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;aAC9D,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5E,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3B,MAAM,UAAU,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACpC,OAAO,CACL,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,UAAU,CAAC;YAC9D,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAErC,MAAM,aAAa,GAAG,eAAK,CAAC,WAAW,CACrC,CAAC,gBAAwB,EAAE,kBAAkB,GAAG,KAAK,EAAE,EAAE;QACvD,eAAK,CAAC,UAAU,CAAC;YACf,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,qBAAqB;YAC9B,IAAI,EAAE;gBACJ,gBAAgB,EAAE,gBAAgB;aACnC;SACF,CAAC,CAAC;QAEH,eAAK,CAAC,GAAG,CACP,WAAW,EACX,iCAAiC,EACjC,gBAAgB,CACjB,CAAC;QAEF,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAEvC,IAAI,CAAC,kBAAkB,EAAE;YACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAChC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;aAChD;iBAAM;gBACL,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;aACnD;YACD,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SAClD;QAED,KAAK,CAAC;YACJ,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE;gBACP,IAAI,EAAE,gBAAgB;aACvB;SACF,CAAC,CAAC;IACL,CAAC,EACD,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CACvB,CAAC;IAEF,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAClD,eAAK,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;IAEpD,OAAO;QACL,WAAW;QACX,UAAU;QACV,aAAa;KACd,CAAC;AACJ,CAAC,CAAC;AAtEW,QAAA,SAAS,aAsEpB","sourcesContent":["import React from \"react\";\n\nimport { ConfigSort } from \"../types\";\nimport { useAnalytics, useReactifySearchContext } from \"../hooks\";\nimport { debug } from \"../utility\";\n\nexport const useSortby = (): {\n sortOption: ConfigSort | undefined;\n sortOptions: Array<ConfigSort>;\n setSortOption: (\n sortOptionHandle: string,\n ignoreHistoryState?: boolean\n ) => void;\n} => {\n const { options, config, sortby } = useReactifySearchContext();\n const { track } = useAnalytics();\n\n const sortOptions = React.useMemo(() => {\n return config.sort\n .sort((a, b) => `${a.position}`.localeCompare(`${b.position}`))\n .filter(({ visibility }) => [\"all\", options.mode].includes(visibility));\n }, [options.mode, config]);\n\n const sortOption = React.useMemo(() => {\n return (\n sortOptions.find(({ handle }) => handle === sortby.sortOption) ||\n sortOptions[0]\n );\n }, [sortOptions, sortby.sortOption]);\n\n const setSortOption = React.useCallback(\n (sortOptionHandle: string, ignoreHistoryState = false) => {\n debug.breadcrumb({\n category: \"sort\",\n message: \"sort option changed\",\n data: {\n sortOptionHandle: sortOptionHandle,\n },\n });\n\n debug.log(\n \"useSortby\",\n \"setSortOption[sortOptionHandle]\",\n sortOptionHandle\n );\n\n sortby.setSortOption(sortOptionHandle);\n\n if (!ignoreHistoryState) {\n const url = new URL(window.location.href);\n if (url.searchParams.has(\"sort\")) {\n url.searchParams.set(\"sort\", sortOptionHandle);\n } else {\n url.searchParams.append(\"sort\", sortOptionHandle);\n }\n window.history.pushState({}, \"\", url.toString());\n }\n\n track({\n eventName: \"sortChange\",\n payload: {\n type: sortOptionHandle,\n },\n });\n },\n [window.location.href]\n );\n\n debug.hook(\"useSortBy\", \"sortOption\", sortOption);\n debug.hook(\"useSortBy\", \"sortOptions\", sortOptions);\n\n return {\n sortOptions,\n sortOption,\n setSortOption,\n };\n};\n"]}