@usereactify/search 5.0.0-beta.11 → 5.0.0-beta.14

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 (155) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +3 -21
  3. package/dist/package.json +1 -1
  4. package/dist/src/components/ClearAll/ClearAll.d.ts +8 -0
  5. package/dist/src/components/ClearAll/ClearAll.js +29 -0
  6. package/dist/src/components/ClearAll/ClearAll.js.map +1 -0
  7. package/dist/src/components/ClearAll/index.d.ts +1 -0
  8. package/dist/src/components/{ReactifySearchBase → ClearAll}/index.js +1 -1
  9. package/dist/src/components/ClearAll/index.js.map +1 -0
  10. package/dist/src/components/CustomComponent/CustomComponent.d.ts +4 -0
  11. package/dist/src/components/CustomComponent/CustomComponent.js +13 -0
  12. package/dist/src/components/CustomComponent/CustomComponent.js.map +1 -0
  13. package/dist/src/components/CustomComponent/index.d.ts +1 -0
  14. package/dist/src/components/CustomComponent/index.js +14 -0
  15. package/dist/src/components/CustomComponent/index.js.map +1 -0
  16. package/dist/src/components/Example/ExampleClearAll.d.ts +4 -0
  17. package/dist/src/components/Example/ExampleClearAll.js +12 -0
  18. package/dist/src/components/Example/ExampleClearAll.js.map +1 -0
  19. package/dist/src/components/Example/ExampleFilterList.d.ts +5 -0
  20. package/dist/src/components/Example/ExampleFilterList.js +80 -9
  21. package/dist/src/components/Example/ExampleFilterList.js.map +1 -1
  22. package/dist/src/components/Example/ExampleFilterRange.js +6 -11
  23. package/dist/src/components/Example/ExampleFilterRange.js.map +1 -1
  24. package/dist/src/components/Example/ExampleFilterSlider.js +8 -9
  25. package/dist/src/components/Example/ExampleFilterSlider.js.map +1 -1
  26. package/dist/src/components/Example/ExampleFilters.d.ts +4 -0
  27. package/dist/src/components/Example/{ExampleFilterStack.js → ExampleFilters.js} +6 -5
  28. package/dist/src/components/Example/ExampleFilters.js.map +1 -0
  29. package/dist/src/components/Example/ExampleFiltersActive.d.ts +4 -0
  30. package/dist/src/components/Example/ExampleFiltersActive.js +23 -0
  31. package/dist/src/components/Example/ExampleFiltersActive.js.map +1 -0
  32. package/dist/src/components/Example/ExampleSortBy.d.ts +4 -0
  33. package/dist/src/components/Example/{ExampleSortby.js → ExampleSortBy.js} +4 -4
  34. package/dist/src/components/Example/{ExampleSortby.js.map → ExampleSortBy.js.map} +1 -1
  35. package/dist/src/components/Example/ExampleStats.d.ts +4 -0
  36. package/dist/src/components/Example/ExampleStats.js +15 -0
  37. package/dist/src/components/Example/ExampleStats.js.map +1 -0
  38. package/dist/src/components/Example/index.d.ts +5 -2
  39. package/dist/src/components/Example/index.js +5 -2
  40. package/dist/src/components/Example/index.js.map +1 -1
  41. package/dist/src/components/Filter/Filter.d.ts +3 -3
  42. package/dist/src/components/Filter/Filter.js +22 -10
  43. package/dist/src/components/Filter/Filter.js.map +1 -1
  44. package/dist/src/components/Filter/{FilterStack.d.ts → Filters.d.ts} +2 -2
  45. package/dist/src/components/Filter/{FilterStack.js → Filters.js} +7 -7
  46. package/dist/src/components/Filter/Filters.js.map +1 -0
  47. package/dist/src/components/Filter/FiltersActive.d.ts +16 -0
  48. package/dist/src/components/Filter/FiltersActive.js +36 -0
  49. package/dist/src/components/Filter/FiltersActive.js.map +1 -0
  50. package/dist/src/components/Filter/index.d.ts +2 -1
  51. package/dist/src/components/Filter/index.js +2 -1
  52. package/dist/src/components/Filter/index.js.map +1 -1
  53. package/dist/src/components/{ReactifySearchBase/ReactifySearchBase.d.ts → ReactifySearchProvider/ReactifySearchProvider.d.ts} +5 -9
  54. package/dist/src/components/{ReactifySearchBase/ReactifySearchBase.js → ReactifySearchProvider/ReactifySearchProvider.js} +12 -11
  55. package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js.map +1 -0
  56. package/dist/src/components/ReactifySearchProvider/index.d.ts +1 -0
  57. package/dist/src/components/ReactifySearchProvider/index.js +14 -0
  58. package/dist/src/components/ReactifySearchProvider/index.js.map +1 -0
  59. package/dist/src/components/Result/{ResultStack.d.ts → Results.d.ts} +2 -2
  60. package/dist/src/components/Result/{ResultStack.js → Results.js} +43 -26
  61. package/dist/src/components/Result/Results.js.map +1 -0
  62. package/dist/src/components/Result/index.d.ts +1 -1
  63. package/dist/src/components/Result/index.js +1 -1
  64. package/dist/src/components/Result/index.js.map +1 -1
  65. package/dist/src/components/Sensor/SensorCollection.js +2 -2
  66. package/dist/src/components/Sensor/SensorCollection.js.map +1 -1
  67. package/dist/src/components/Sensor/SensorInventoryAvailable.js +1 -1
  68. package/dist/src/components/Sensor/SensorInventoryAvailable.js.map +1 -1
  69. package/dist/src/components/Sensor/SensorSort.js +13 -13
  70. package/dist/src/components/Sensor/SensorSort.js.map +1 -1
  71. package/dist/src/components/Sensor/Sensors.d.ts +3 -0
  72. package/dist/src/components/Sensor/{SensorStack.js → Sensors.js} +4 -4
  73. package/dist/src/components/Sensor/Sensors.js.map +1 -0
  74. package/dist/src/components/Sensor/index.d.ts +1 -1
  75. package/dist/src/components/Sensor/index.js +1 -1
  76. package/dist/src/components/Sensor/index.js.map +1 -1
  77. package/dist/src/components/SortBy/SortBy.d.ts +7 -0
  78. package/dist/src/components/{Sortby/Sortby.js → SortBy/SortBy.js} +7 -7
  79. package/dist/src/components/SortBy/SortBy.js.map +1 -0
  80. package/dist/src/components/SortBy/index.d.ts +1 -0
  81. package/dist/src/components/{Sortby → SortBy}/index.js +1 -1
  82. package/dist/src/components/{Sortby → SortBy}/index.js.map +1 -1
  83. package/dist/src/components/Stats/Stats.d.ts +7 -0
  84. package/dist/src/components/Stats/Stats.js +15 -0
  85. package/dist/src/components/Stats/Stats.js.map +1 -0
  86. package/dist/src/components/Stats/index.d.ts +1 -0
  87. package/dist/src/components/Stats/index.js +14 -0
  88. package/dist/src/components/Stats/index.js.map +1 -0
  89. package/dist/src/components/index.d.ts +5 -2
  90. package/dist/src/components/index.js +5 -2
  91. package/dist/src/components/index.js.map +1 -1
  92. package/dist/src/hooks/index.d.ts +4 -3
  93. package/dist/src/hooks/index.js +4 -3
  94. package/dist/src/hooks/index.js.map +1 -1
  95. package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.d.ts +6 -1
  96. package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.js +12 -1
  97. package/dist/src/hooks/reactivesearch/useReactiveFilterRangeProps.js.map +1 -1
  98. package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.d.ts +5 -0
  99. package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.js +9 -2
  100. package/dist/src/hooks/reactivesearch/useReactiveFilterSliderProps.js.map +1 -1
  101. package/dist/src/hooks/reactivesearch/useReactiveReactProp.js +4 -4
  102. package/dist/src/hooks/reactivesearch/useReactiveReactProp.js.map +1 -1
  103. package/dist/src/hooks/reactivesearch/useReactiveReactiveListProps.js +1 -1
  104. package/dist/src/hooks/reactivesearch/useReactiveReactiveListProps.js.map +1 -1
  105. package/dist/src/hooks/useConfig.js +1 -1
  106. package/dist/src/hooks/useConfig.js.map +1 -1
  107. package/dist/src/hooks/useCuration.js +2 -6
  108. package/dist/src/hooks/useCuration.js.map +1 -1
  109. package/dist/src/hooks/useFilterListProps.d.ts +2 -2
  110. package/dist/src/hooks/useFilterListProps.js +32 -2
  111. package/dist/src/hooks/useFilterListProps.js.map +1 -1
  112. package/dist/src/hooks/useFilterRangeProps.d.ts +10 -0
  113. package/dist/src/hooks/useFilterRangeProps.js +52 -0
  114. package/dist/src/hooks/useFilterRangeProps.js.map +1 -0
  115. package/dist/src/hooks/useFilterSliderProps.d.ts +12 -0
  116. package/dist/src/hooks/useFilterSliderProps.js +49 -0
  117. package/dist/src/hooks/useFilterSliderProps.js.map +1 -0
  118. package/dist/src/hooks/useFilters.d.ts +3 -2
  119. package/dist/src/hooks/useFilters.js +45 -11
  120. package/dist/src/hooks/useFilters.js.map +1 -1
  121. package/dist/src/hooks/usePaginationLoadMore.js +1 -1
  122. package/dist/src/hooks/usePaginationLoadMore.js.map +1 -1
  123. package/dist/src/hooks/useReactifySearchContext.d.ts +4 -12
  124. package/dist/src/hooks/useReactifySearchContext.js.map +1 -1
  125. package/dist/src/hooks/useSearch.d.ts +1 -1
  126. package/dist/src/hooks/useSearch.js +25 -5
  127. package/dist/src/hooks/useSearch.js.map +1 -1
  128. package/dist/src/hooks/{useSortby.d.ts → useSortBy.d.ts} +1 -1
  129. package/dist/src/hooks/{useSortby.js → useSortBy.js} +5 -7
  130. package/dist/src/hooks/useSortBy.js.map +1 -0
  131. package/dist/src/types/firestore.d.ts +3 -0
  132. package/dist/src/types/firestore.js.map +1 -1
  133. package/dist/src/types/reactivesearch.d.ts +1 -1
  134. package/dist/src/types/reactivesearch.js.map +1 -1
  135. package/dist/src/utility/debug.d.ts +3 -1
  136. package/dist/src/utility/debug.js +6 -2
  137. package/dist/src/utility/debug.js.map +1 -1
  138. package/package.json +1 -1
  139. package/dist/src/components/Example/ExampleFilterStack.d.ts +0 -4
  140. package/dist/src/components/Example/ExampleFilterStack.js.map +0 -1
  141. package/dist/src/components/Example/ExampleSortby.d.ts +0 -4
  142. package/dist/src/components/Filter/FilterStack.js.map +0 -1
  143. package/dist/src/components/ReactifySearchBase/ReactifySearchBase.js.map +0 -1
  144. package/dist/src/components/ReactifySearchBase/index.d.ts +0 -1
  145. package/dist/src/components/ReactifySearchBase/index.js.map +0 -1
  146. package/dist/src/components/Result/ResultStack.js.map +0 -1
  147. package/dist/src/components/Sensor/SensorStack.d.ts +0 -3
  148. package/dist/src/components/Sensor/SensorStack.js.map +0 -1
  149. package/dist/src/components/Sortby/Sortby.d.ts +0 -7
  150. package/dist/src/components/Sortby/Sortby.js.map +0 -1
  151. package/dist/src/components/Sortby/index.d.ts +0 -1
  152. package/dist/src/hooks/useFilterStack.d.ts +0 -4
  153. package/dist/src/hooks/useFilterStack.js +0 -52
  154. package/dist/src/hooks/useFilterStack.js.map +0 -1
  155. package/dist/src/hooks/useSortby.js.map +0 -1
@@ -1,10 +1,13 @@
1
+ export * from "./ExampleClearAll";
1
2
  export * from "./ExampleFilterList";
2
3
  export * from "./ExampleFilterRange";
3
4
  export * from "./ExampleFilterSlider";
4
- export * from "./ExampleFilterStack";
5
+ export * from "./ExampleFilters";
6
+ export * from "./ExampleFiltersActive";
5
7
  export * from "./ExampleResultCardCallout";
6
8
  export * from "./ExampleResultCardProduct";
7
9
  export * from "./ExampleResultPaginationNumbered";
8
10
  export * from "./ExampleResultPaginationLoadMore";
9
11
  export * from "./ExampleResultPaginationNextPrev";
10
- export * from "./ExampleSortby";
12
+ export * from "./ExampleSortBy";
13
+ export * from "./ExampleStats";
@@ -10,14 +10,17 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./ExampleClearAll"), exports);
13
14
  __exportStar(require("./ExampleFilterList"), exports);
14
15
  __exportStar(require("./ExampleFilterRange"), exports);
15
16
  __exportStar(require("./ExampleFilterSlider"), exports);
16
- __exportStar(require("./ExampleFilterStack"), exports);
17
+ __exportStar(require("./ExampleFilters"), exports);
18
+ __exportStar(require("./ExampleFiltersActive"), exports);
17
19
  __exportStar(require("./ExampleResultCardCallout"), exports);
18
20
  __exportStar(require("./ExampleResultCardProduct"), exports);
19
21
  __exportStar(require("./ExampleResultPaginationNumbered"), exports);
20
22
  __exportStar(require("./ExampleResultPaginationLoadMore"), exports);
21
23
  __exportStar(require("./ExampleResultPaginationNextPrev"), exports);
22
- __exportStar(require("./ExampleSortby"), exports);
24
+ __exportStar(require("./ExampleSortBy"), exports);
25
+ __exportStar(require("./ExampleStats"), exports);
23
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Example/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAoC;AACpC,uDAAqC;AACrC,wDAAsC;AACtC,uDAAqC;AACrC,6DAA0C;AAC1C,6DAA2C;AAC3C,oEAAkD;AAClD,oEAAkD;AAClD,oEAAkD;AAClD,kDAAgC","sourcesContent":["export * from \"./ExampleFilterList\";\nexport * from \"./ExampleFilterRange\";\nexport * from \"./ExampleFilterSlider\";\nexport * from \"./ExampleFilterStack\";\nexport * from \"./ExampleResultCardCallout\"\nexport * from \"./ExampleResultCardProduct\";\nexport * from \"./ExampleResultPaginationNumbered\";\nexport * from \"./ExampleResultPaginationLoadMore\";\nexport * from \"./ExampleResultPaginationNextPrev\";\nexport * from \"./ExampleSortby\";"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Example/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAkC;AAClC,sDAAoC;AACpC,uDAAqC;AACrC,wDAAsC;AACtC,mDAAiC;AACjC,yDAAuC;AACvC,6DAA2C;AAC3C,6DAA2C;AAC3C,oEAAkD;AAClD,oEAAkD;AAClD,oEAAkD;AAClD,kDAAgC;AAChC,iDAA+B","sourcesContent":["export * from \"./ExampleClearAll\";\nexport * from \"./ExampleFilterList\";\nexport * from \"./ExampleFilterRange\";\nexport * from \"./ExampleFilterSlider\";\nexport * from \"./ExampleFilters\";\nexport * from \"./ExampleFiltersActive\";\nexport * from \"./ExampleResultCardCallout\";\nexport * from \"./ExampleResultCardProduct\";\nexport * from \"./ExampleResultPaginationNumbered\";\nexport * from \"./ExampleResultPaginationLoadMore\";\nexport * from \"./ExampleResultPaginationNextPrev\";\nexport * from \"./ExampleSortBy\";\nexport * from \"./ExampleStats\";\n"]}
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import type { ConfigFilterOption } from "../../types";
3
- import { useFilterListProps, useReactiveFilterRangeProps, useReactiveFilterSliderProps } from "../../hooks";
3
+ import { useFilterListProps, useFilterRangeProps, useFilterSliderProps } from "../../hooks";
4
4
  export declare type FilterProps = {
5
5
  /** The filter option being rendered */
6
6
  filter: ConfigFilterOption;
@@ -10,11 +10,11 @@ export declare type FilterProps = {
10
10
  }>;
11
11
  /** Render method for Range filters */
12
12
  renderFilterRange?: React.FC<Omit<FilterProps, "renderFilterRange"> & {
13
- reactiveFilterRangeProps: ReturnType<typeof useReactiveFilterRangeProps>;
13
+ filterRangeProps: ReturnType<typeof useFilterRangeProps>;
14
14
  }>;
15
15
  /** Render method for Slider filters */
16
16
  renderFilterSlider?: React.FC<Omit<FilterProps, "renderFilterSlider"> & {
17
- reactiveFilterSliderProps: ReturnType<typeof useReactiveFilterSliderProps>;
17
+ filterSliderProps: ReturnType<typeof useFilterSliderProps>;
18
18
  }>;
19
19
  };
20
20
  export declare const Filter: React.FC<FilterProps>;
@@ -20,6 +20,7 @@ const MultiList_1 = __importDefault(require("@appbaseio/reactivesearch/lib/compo
20
20
  const SingleList_1 = __importDefault(require("@appbaseio/reactivesearch/lib/components/list/SingleList"));
21
21
  const hooks_1 = require("../../hooks");
22
22
  const components_1 = require("../../components");
23
+ const reactivesearch_1 = require("@appbaseio/reactivesearch");
23
24
  const Filter = (props) => {
24
25
  if ("single" === props.filter.displayType) {
25
26
  return react_1.default.createElement(FilterSingleList, Object.assign({}, props));
@@ -46,20 +47,31 @@ const FilterMultiList = (props) => {
46
47
  return (react_1.default.createElement(MultiList_1.default, Object.assign({}, reactiveFilterListProps, { render: (reactivesearchFilterProps) => (react_1.default.createElement(FilterListInner, Object.assign({}, props, { reactivesearchFilterProps: reactivesearchFilterProps }))) })));
47
48
  };
48
49
  const FilterRange = (props) => {
50
+ var _a;
49
51
  const reactiveFilterRangeProps = (0, hooks_1.useReactiveFilterRangeProps)(props.filter);
50
- if (props.renderFilterRange) {
51
- const Component = props.renderFilterRange;
52
- return (react_1.default.createElement(Component, Object.assign({}, props, { reactiveFilterRangeProps: reactiveFilterRangeProps })));
53
- }
54
- return null;
52
+ const filterRangeProps = (0, hooks_1.useFilterRangeProps)(props.filter);
53
+ const RenderRangeComponent = (_a = props.renderFilterRange) !== null && _a !== void 0 ? _a : components_1.ExampleFilterRange;
54
+ return (react_1.default.createElement(react_1.default.Fragment, null,
55
+ react_1.default.createElement("div", { style: {
56
+ display: "none",
57
+ } },
58
+ react_1.default.createElement(reactivesearch_1.SingleRange, Object.assign({}, reactiveFilterRangeProps, { value: filterRangeProps.value, onChange: filterRangeProps.handleChange }))),
59
+ react_1.default.createElement(RenderRangeComponent, { filterRangeProps: filterRangeProps, filter: props.filter })));
55
60
  };
56
61
  const FilterSlider = (props) => {
62
+ var _a;
57
63
  const reactiveFilterSliderProps = (0, hooks_1.useReactiveFilterSliderProps)(props.filter);
58
- if (props.renderFilterSlider) {
59
- const Component = props.renderFilterSlider;
60
- return (react_1.default.createElement(Component, Object.assign({}, props, { reactiveFilterSliderProps: reactiveFilterSliderProps })));
61
- }
62
- return null;
64
+ const filterSliderProps = (0, hooks_1.useFilterSliderProps)(props.filter);
65
+ const RenderSliderComponent = (_a = props.renderFilterSlider) !== null && _a !== void 0 ? _a : components_1.ExampleFilterSlider;
66
+ return (react_1.default.createElement(react_1.default.Fragment, null,
67
+ props.renderFilterSlider ? (react_1.default.createElement("div", { style: {
68
+ display: "none",
69
+ } },
70
+ react_1.default.createElement(reactivesearch_1.DynamicRangeSlider, Object.assign({}, reactiveFilterSliderProps, { value: () => filterSliderProps.value, onChange: (value) => filterSliderProps.handleChange({
71
+ start: value[0],
72
+ end: value[1],
73
+ }) })))) : null,
74
+ react_1.default.createElement(RenderSliderComponent, { filterSliderProps: filterSliderProps, filter: props.filter })));
63
75
  };
64
76
  // inner component exists only so we can use memos in reactivesearch render functions
65
77
  const FilterListInner = (props) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../../../src/components/Filter/Filter.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport MultiList from \"@appbaseio/reactivesearch/lib/components/list/MultiList\";\nimport SingleList from \"@appbaseio/reactivesearch/lib/components/list/SingleList\";\n\nimport type {\n ConfigFilterOption,\n ReactivesearchFilterProps,\n} from \"../../types\";\nimport {\n useAnalytics,\n useFilterListProps,\n useReactiveFilterListProps,\n useReactiveFilterRangeProps,\n useReactiveFilterSliderProps,\n} from \"../../hooks\";\nimport { ExampleFilterList } from \"../../components\";\nimport { debug } from \"../../utility\";\n\nexport type FilterProps = {\n /** The filter option being rendered */\n filter: ConfigFilterOption;\n /** Render method for List filters */\n renderFilterList?: React.FC<\n Omit<FilterProps, \"renderFilterList\"> & {\n filterListProps: ReturnType<typeof useFilterListProps>;\n }\n >;\n /** Render method for Range filters */\n renderFilterRange?: React.FC<\n Omit<FilterProps, \"renderFilterRange\"> & {\n reactiveFilterRangeProps: ReturnType<typeof useReactiveFilterRangeProps>;\n }\n >;\n /** Render method for Slider filters */\n renderFilterSlider?: React.FC<\n Omit<FilterProps, \"renderFilterSlider\"> & {\n reactiveFilterSliderProps: ReturnType<\n typeof useReactiveFilterSliderProps\n >;\n }\n >;\n};\n\nexport const Filter: React.FC<FilterProps> = (props) => {\n if (\"single\" === props.filter.displayType) {\n return <FilterSingleList {...props} />;\n }\n\n if (\"multi\" === props.filter.displayType) {\n return <FilterMultiList {...props} />;\n }\n\n if (\"range\" === props.filter.displayType) {\n return <FilterRange {...props} />;\n }\n\n if (\"slider\" === props.filter.displayType) {\n return <FilterSlider {...props} />;\n }\n\n console.log(\n `filter with display type \"${props.filter.displayType}\" not yet supported`\n );\n\n return null;\n};\n\nconst FilterSingleList: React.FC<FilterProps> = (props) => {\n const reactiveFilterListProps = useReactiveFilterListProps(props.filter);\n\n return (\n <SingleList\n {...reactiveFilterListProps}\n render={(reactivesearchFilterProps: ReactivesearchFilterProps) => (\n <FilterListInner\n {...props}\n reactivesearchFilterProps={reactivesearchFilterProps}\n />\n )}\n />\n );\n};\n\nconst FilterMultiList: React.FC<FilterProps> = (props) => {\n const reactiveFilterListProps = useReactiveFilterListProps(props.filter);\n\n return (\n <MultiList\n {...reactiveFilterListProps}\n render={(reactivesearchFilterProps: ReactivesearchFilterProps) => (\n <FilterListInner\n {...props}\n reactivesearchFilterProps={reactivesearchFilterProps}\n />\n )}\n />\n );\n};\n\nconst FilterRange: React.FC<FilterProps> = (props) => {\n const reactiveFilterRangeProps = useReactiveFilterRangeProps(props.filter);\n\n if (props.renderFilterRange) {\n const Component = props.renderFilterRange;\n\n return (\n <Component\n {...props}\n reactiveFilterRangeProps={reactiveFilterRangeProps}\n />\n );\n }\n\n return null;\n};\n\nconst FilterSlider: React.FC<FilterProps> = (props) => {\n const reactiveFilterSliderProps = useReactiveFilterSliderProps(props.filter);\n\n if (props.renderFilterSlider) {\n const Component = props.renderFilterSlider;\n\n return (\n <Component\n {...props}\n reactiveFilterSliderProps={reactiveFilterSliderProps}\n />\n );\n }\n\n return null;\n};\n\n// inner component exists only so we can use memos in reactivesearch render functions\nconst FilterListInner: React.FC<\n FilterProps & { reactivesearchFilterProps: ReactivesearchFilterProps }\n> = (props) => {\n const { filter, renderFilterList, reactivesearchFilterProps, ...otherProps } =\n props;\n\n const filterListProps = useFilterListProps(filter, reactivesearchFilterProps);\n\n // hide entire filter when no options available\n if (0 === filterListProps.options.length) {\n return null;\n }\n\n if (renderFilterList) {\n const Component = renderFilterList;\n return (\n <Component\n filterListProps={filterListProps}\n filter={filter}\n {...otherProps}\n />\n );\n }\n\n return (\n <ExampleFilterList\n filterListProps={filterListProps}\n filter={filter}\n {...otherProps}\n />\n );\n};\n"]}
1
+ {"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../../../src/components/Filter/Filter.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport MultiList from \"@appbaseio/reactivesearch/lib/components/list/MultiList\";\nimport SingleList from \"@appbaseio/reactivesearch/lib/components/list/SingleList\";\n\nimport type {\n ConfigFilterOption,\n ReactivesearchFilterListProps,\n} from \"../../types\";\nimport {\n useFilterListProps,\n useFilterRangeProps,\n useFilterSliderProps,\n useReactiveFilterListProps,\n useReactiveFilterRangeProps,\n useReactiveFilterSliderProps,\n} from \"../../hooks\";\nimport {\n ExampleFilterList,\n ExampleFilterRange,\n ExampleFilterSlider,\n} from \"../../components\";\nimport { DynamicRangeSlider, SingleRange } from \"@appbaseio/reactivesearch\";\n\nexport type FilterProps = {\n /** The filter option being rendered */\n filter: ConfigFilterOption;\n /** Render method for List filters */\n renderFilterList?: React.FC<\n Omit<FilterProps, \"renderFilterList\"> & {\n filterListProps: ReturnType<typeof useFilterListProps>;\n }\n >;\n /** Render method for Range filters */\n renderFilterRange?: React.FC<\n Omit<FilterProps, \"renderFilterRange\"> & {\n filterRangeProps: ReturnType<typeof useFilterRangeProps>;\n }\n >;\n /** Render method for Slider filters */\n renderFilterSlider?: React.FC<\n Omit<FilterProps, \"renderFilterSlider\"> & {\n filterSliderProps: ReturnType<typeof useFilterSliderProps>;\n }\n >;\n};\n\nexport const Filter: React.FC<FilterProps> = (props) => {\n if (\"single\" === props.filter.displayType) {\n return <FilterSingleList {...props} />;\n }\n\n if (\"multi\" === props.filter.displayType) {\n return <FilterMultiList {...props} />;\n }\n\n if (\"range\" === props.filter.displayType) {\n return <FilterRange {...props} />;\n }\n\n if (\"slider\" === props.filter.displayType) {\n return <FilterSlider {...props} />;\n }\n\n console.log(\n `filter with display type \"${props.filter.displayType}\" not yet supported`\n );\n\n return null;\n};\n\nconst FilterSingleList: React.FC<FilterProps> = (props) => {\n const reactiveFilterListProps = useReactiveFilterListProps(props.filter);\n\n return (\n <SingleList\n {...reactiveFilterListProps}\n render={(reactivesearchFilterProps: ReactivesearchFilterListProps) => (\n <FilterListInner\n {...props}\n reactivesearchFilterProps={reactivesearchFilterProps}\n />\n )}\n />\n );\n};\n\nconst FilterMultiList: React.FC<FilterProps> = (props) => {\n const reactiveFilterListProps = useReactiveFilterListProps(props.filter);\n\n return (\n <MultiList\n {...reactiveFilterListProps}\n render={(reactivesearchFilterProps: ReactivesearchFilterListProps) => (\n <FilterListInner\n {...props}\n reactivesearchFilterProps={reactivesearchFilterProps}\n />\n )}\n />\n );\n};\n\nconst FilterRange: React.FC<FilterProps> = (props) => {\n const reactiveFilterRangeProps = useReactiveFilterRangeProps(props.filter);\n\n const filterRangeProps = useFilterRangeProps(props.filter);\n\n const RenderRangeComponent = props.renderFilterRange ?? ExampleFilterRange;\n\n return (\n <>\n <div\n style={{\n display: \"none\",\n }}\n >\n <SingleRange\n {...reactiveFilterRangeProps}\n value={filterRangeProps.value}\n onChange={filterRangeProps.handleChange}\n />\n </div>\n <RenderRangeComponent\n filterRangeProps={filterRangeProps}\n filter={props.filter}\n />\n </>\n );\n};\n\nconst FilterSlider: React.FC<FilterProps> = (props) => {\n const reactiveFilterSliderProps = useReactiveFilterSliderProps(props.filter);\n\n const filterSliderProps = useFilterSliderProps(props.filter);\n\n const RenderSliderComponent = props.renderFilterSlider ?? ExampleFilterSlider;\n\n return (\n <>\n {props.renderFilterSlider ? (\n <div\n style={{\n display: \"none\",\n }}\n >\n <DynamicRangeSlider\n {...reactiveFilterSliderProps}\n value={() => filterSliderProps.value}\n onChange={(value) =>\n filterSliderProps.handleChange({\n start: value[0],\n end: value[1],\n })\n }\n />\n </div>\n ) : null}\n <RenderSliderComponent\n filterSliderProps={filterSliderProps}\n filter={props.filter}\n />\n </>\n );\n};\n\n// inner component exists only so we can use memos in reactivesearch render functions\nconst FilterListInner: React.FC<\n FilterProps & { reactivesearchFilterProps: ReactivesearchFilterListProps }\n> = (props) => {\n const { filter, renderFilterList, reactivesearchFilterProps, ...otherProps } =\n props;\n\n const filterListProps = useFilterListProps(filter, reactivesearchFilterProps);\n\n // hide entire filter when no options available\n if (0 === filterListProps.options.length) {\n return null;\n }\n\n if (renderFilterList) {\n const Component = renderFilterList;\n return (\n <Component\n filterListProps={filterListProps}\n filter={filter}\n {...otherProps}\n />\n );\n }\n\n return (\n <ExampleFilterList\n filterListProps={filterListProps}\n filter={filter}\n {...otherProps}\n />\n );\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { useFilters } from "../../hooks";
3
- export declare type FilterStackProps = {
3
+ export declare type FiltersProps = {
4
4
  /** Render method called once for all filters */
5
5
  renderFilters?: React.FC<ReturnType<typeof useFilters>>;
6
6
  };
7
- export declare const FilterStack: React.FC<FilterStackProps>;
7
+ export declare const Filters: React.FC<FiltersProps>;
@@ -3,15 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FilterStack = void 0;
6
+ exports.Filters = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const hooks_1 = require("../../hooks");
9
9
  const components_1 = require("../../components");
10
- const FilterStack = (props) => {
10
+ const Filters = (props) => {
11
11
  var _a;
12
- const filtersHook = (0, hooks_1.useFilters)();
13
- const RenderFiltersComponent = (_a = props.renderFilters) !== null && _a !== void 0 ? _a : components_1.ExampleFilterStack;
14
- return (react_1.default.createElement(RenderFiltersComponent, Object.assign({}, filtersHook)));
12
+ const filterStackHook = (0, hooks_1.useFilters)();
13
+ const RenderFiltersComponent = (_a = props.renderFilters) !== null && _a !== void 0 ? _a : components_1.ExampleFilters;
14
+ return react_1.default.createElement(RenderFiltersComponent, Object.assign({}, filterStackHook));
15
15
  };
16
- exports.FilterStack = FilterStack;
17
- //# sourceMappingURL=FilterStack.js.map
16
+ exports.Filters = Filters;
17
+ //# sourceMappingURL=Filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filters.js","sourceRoot":"","sources":["../../../../src/components/Filter/Filters.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,uCAAyC;AACzC,iDAAkD;AAO3C,MAAM,OAAO,GAA2B,CAAC,KAAK,EAAE,EAAE;;IACvD,MAAM,eAAe,GAAG,IAAA,kBAAU,GAAE,CAAC;IAErC,MAAM,sBAAsB,GAAG,MAAA,KAAK,CAAC,aAAa,mCAAI,2BAAc,CAAC;IAErE,OAAO,8BAAC,sBAAsB,oBAAK,eAAe,EAAI,CAAC;AACzD,CAAC,CAAC;AANW,QAAA,OAAO,WAMlB","sourcesContent":["import React from \"react\";\n\nimport { useFilters } from \"../../hooks\";\nimport { ExampleFilters } from \"../../components\";\n\nexport type FiltersProps = {\n /** Render method called once for all filters */\n renderFilters?: React.FC<ReturnType<typeof useFilters>>;\n};\n\nexport const Filters: React.FC<FiltersProps> = (props) => {\n const filterStackHook = useFilters();\n\n const RenderFiltersComponent = props.renderFilters ?? ExampleFilters;\n\n return <RenderFiltersComponent {...filterStackHook} />;\n};\n"]}
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ export declare type FiltersActiveProps = {
3
+ /** Render method called once for all active filters */
4
+ renderFiltersActive?: React.FC<{
5
+ selectedFilters: Array<{
6
+ key: string;
7
+ label: string;
8
+ value: Array<string> | string | {
9
+ start: number;
10
+ end: number;
11
+ };
12
+ }>;
13
+ handleRemove: (filterKey: string) => void;
14
+ }>;
15
+ };
16
+ export declare const FiltersActive: React.FC<FiltersActiveProps>;
@@ -0,0 +1,36 @@
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.FiltersActive = void 0;
7
+ const reactivesearch_1 = require("@appbaseio/reactivesearch");
8
+ const react_1 = __importDefault(require("react"));
9
+ const components_1 = require("../../components");
10
+ const FiltersActive = (props) => {
11
+ var _a;
12
+ const RenderFiltersActiveComponent = (_a = props.renderFiltersActive) !== null && _a !== void 0 ? _a : components_1.ExampleFiltersActive;
13
+ return (react_1.default.createElement(reactivesearch_1.SelectedFilters, { render: ({ selectedValues, setValue }) => {
14
+ const selectedFilters = Object.entries(selectedValues)
15
+ .filter(([key, item]) => {
16
+ var _a, _b;
17
+ return (item === null || item === void 0 ? void 0 : item.URLParams) &&
18
+ (item === null || item === void 0 ? void 0 : item.showFilter) &&
19
+ (!!((_a = item === null || item === void 0 ? void 0 : item.value) === null || _a === void 0 ? void 0 : _a.length) || !!((_b = item === null || item === void 0 ? void 0 : item.value) === null || _b === void 0 ? void 0 : _b.label));
20
+ })
21
+ .map(([key, item]) => ({
22
+ key: key,
23
+ label: item.label,
24
+ value: item.value,
25
+ }));
26
+ const handleRemove = (selectedFilterKey) => {
27
+ setValue(selectedFilterKey, null);
28
+ };
29
+ if (!selectedFilters.length) {
30
+ return null;
31
+ }
32
+ return (react_1.default.createElement(RenderFiltersActiveComponent, { selectedFilters: selectedFilters, handleRemove: handleRemove }));
33
+ } }));
34
+ };
35
+ exports.FiltersActive = FiltersActive;
36
+ //# sourceMappingURL=FiltersActive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FiltersActive.js","sourceRoot":"","sources":["../../../../src/components/Filter/FiltersActive.tsx"],"names":[],"mappings":";;;;;;AAAA,8DAA4D;AAC5D,kDAA0B;AAE1B,iDAAwD;AAcjD,MAAM,aAAa,GAAiC,CAAC,KAAK,EAAE,EAAE;;IACnE,MAAM,4BAA4B,GAChC,MAAA,KAAK,CAAC,mBAAmB,mCAAI,iCAAoB,CAAC;IAEpD,OAAO,CACL,8BAAC,gCAAe,IACd,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE;YACvC,MAAM,eAAe,GACnB,MAAM,CAAC,OAAO,CAAC,cAAc,CAC9B;iBACE,MAAM,CACL,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;;gBACd,OAAA,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS;qBACf,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,CAAA;oBAChB,CAAC,CAAC,CAAC,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,MAAM,CAAA,IAAI,CAAC,CAAC,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,KAAK,CAAA,CAAC,CAAA;aAAA,CAClD;iBACA,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrB,GAAG,EAAE,GAAG;gBACR,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC,CAAC;YAEN,MAAM,YAAY,GAAG,CAAC,iBAAyB,EAAE,EAAE;gBACjD,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YACpC,CAAC,CAAC;YAEF,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;gBAC3B,OAAO,IAAI,CAAC;aACb;YAED,OAAO,CACL,8BAAC,4BAA4B,IAC3B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,GAC1B,CACH,CAAC;QACJ,CAAC,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAvCW,QAAA,aAAa,iBAuCxB","sourcesContent":["import { SelectedFilters } from \"@appbaseio/reactivesearch\";\nimport React from \"react\";\n\nimport { ExampleFiltersActive } from \"../../components\";\n\nexport type FiltersActiveProps = {\n /** Render method called once for all active filters */\n renderFiltersActive?: React.FC<{\n selectedFilters: Array<{\n key: string;\n label: string;\n value: Array<string> | string | { start: number; end: number };\n }>;\n handleRemove: (filterKey: string) => void;\n }>;\n};\n\nexport const FiltersActive: React.FC<FiltersActiveProps> = (props) => {\n const RenderFiltersActiveComponent =\n props.renderFiltersActive ?? ExampleFiltersActive;\n\n return (\n <SelectedFilters\n render={({ selectedValues, setValue }) => {\n const selectedFilters = (\n Object.entries(selectedValues) as Array<[string, any]>\n )\n .filter(\n ([key, item]) =>\n item?.URLParams &&\n item?.showFilter &&\n (!!item?.value?.length || !!item?.value?.label)\n )\n .map(([key, item]) => ({\n key: key,\n label: item.label,\n value: item.value,\n }));\n\n const handleRemove = (selectedFilterKey: string) => {\n setValue(selectedFilterKey, null);\n };\n\n if (!selectedFilters.length) {\n return null;\n }\n\n return (\n <RenderFiltersActiveComponent\n selectedFilters={selectedFilters}\n handleRemove={handleRemove}\n />\n );\n }}\n />\n );\n};\n"]}
@@ -1,2 +1,3 @@
1
1
  export * from "./Filter";
2
- export * from "./FilterStack";
2
+ export * from "./Filters";
3
+ export * from "./FiltersActive";
@@ -11,5 +11,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./Filter"), exports);
14
- __exportStar(require("./FilterStack"), exports);
14
+ __exportStar(require("./Filters"), exports);
15
+ __exportStar(require("./FiltersActive"), exports);
15
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Filter/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,gDAA8B","sourcesContent":["export * from \"./Filter\";\nexport * from \"./FilterStack\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Filter/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B;AAC1B,kDAAgC","sourcesContent":["export * from \"./Filter\";\nexport * from \"./Filters\";\nexport * from \"./FiltersActive\";\n"]}
@@ -1,16 +1,16 @@
1
1
  import React from "react";
2
- export declare type ReactifySearchBaseProps = {
2
+ export declare type ReactifySearchProviderProps = {
3
3
  /** The search area the provider will be used in */
4
4
  mode: "search" | "collection" | "instant-search";
5
5
  /** Shopify store domain used to resolve the site configuration */
6
6
  shopifyPermanentDomain: string;
7
7
  /** Specific filter group handle, used to override automated logic */
8
- filterStackHandle?: string;
8
+ filtersHandle?: string;
9
9
  /** Callback function for redirects, suitable for headless sites to avoid full page refresh */
10
10
  onRedirect?: (type: "redirect" | "search", url: string) => void;
11
11
  /** Render method to display a component when the config is loading */
12
12
  renderBooting?: () => JSX.Element | null;
13
- /** Advanced usage: Allows you to wrap the ReactifySearchBase in your own ReactiveBase component */
13
+ /** Advanced usage: Allows you to wrap the ReactifySearchProvider in your own ReactiveBase component */
14
14
  noReactiveBase?: boolean;
15
15
  /** Advanced usage: Array of additional component IDs managed outside of Reactify Search */
16
16
  additionalComponentHandles?: string[];
@@ -31,12 +31,8 @@ export declare type ReactifySearchBaseProps = {
31
31
  } | {
32
32
  mode: "collection";
33
33
  /** Collection object that includes the handle, used to find curations */
34
- collection: {
35
- id: number;
36
- title: string;
37
- handle: string;
38
- };
34
+ collectionHandle: string;
39
35
  } | {
40
36
  mode: "instant-search";
41
37
  });
42
- export declare const ReactifySearchBase: React.FC<ReactifySearchBaseProps>;
38
+ export declare const ReactifySearchProvider: React.FC<ReactifySearchProviderProps>;
@@ -22,27 +22,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.ReactifySearchBase = void 0;
25
+ exports.ReactifySearchProvider = void 0;
26
26
  const react_1 = __importDefault(require("react"));
27
27
  const Sentry = __importStar(require("@sentry/react"));
28
28
  const hooks_1 = require("../../hooks");
29
29
  const components_1 = require("../../components");
30
30
  const utility_1 = require("../../utility");
31
- const ReactifySearchBase = (props) => {
31
+ const ReactifySearchProvider = (props) => {
32
32
  react_1.default.useEffect(() => {
33
- utility_1.debug.log("ReactifySearchBase", "props", props);
33
+ utility_1.debug.log("ReactifySearchProvider", "props", props);
34
34
  Sentry.setTags({
35
35
  "reactifysearch.index": props.index,
36
36
  "reactifysearch.shop": props.shopifyPermanentDomain,
37
37
  "reactifysearch.mode": props.mode,
38
- "reactifysearch.collection": props.mode === "collection" ? props.collection.handle : undefined,
39
- "reactifysearch.filter": props.filterStackHandle,
38
+ "reactifysearch.collection": props.mode === "collection" ? props.collectionHandle : undefined,
39
+ "reactifysearch.filter": props.filtersHandle,
40
40
  });
41
41
  }, [props]);
42
42
  return (react_1.default.createElement(Sentry.ErrorBoundary, { fallback: react_1.default.createElement("p", null, "An error has occurred") },
43
43
  react_1.default.createElement(ReactifySearchInner, Object.assign({}, props))));
44
44
  };
45
- exports.ReactifySearchBase = ReactifySearchBase;
45
+ exports.ReactifySearchProvider = ReactifySearchProvider;
46
46
  const ReactifySearchInner = (props) => {
47
47
  var _a, _b;
48
48
  const { config } = (0, hooks_1.useConfig)(props.shopifyPermanentDomain, props.configId);
@@ -99,9 +99,9 @@ const ReactifySearchInner = (props) => {
99
99
  if (!config) {
100
100
  return;
101
101
  }
102
- const memoValue = {
102
+ return {
103
103
  config: config,
104
- options: Object.assign(Object.assign({}, props), { index: (_a = props.index) !== null && _a !== void 0 ? _a : config.index, filterStackHandle: props.filterStackHandle, credentials: credentials, theme: theme }),
104
+ options: Object.assign(Object.assign({}, props), { index: (_a = props.index) !== null && _a !== void 0 ? _a : config.index, filtersHandle: props.filtersHandle, credentials: credentials, theme: theme }),
105
105
  search: {
106
106
  searchQuery: searchQuery,
107
107
  setSearchQuery: setSearchQuery,
@@ -113,9 +113,10 @@ const ReactifySearchInner = (props) => {
113
113
  setSortOption: setSortOption,
114
114
  },
115
115
  };
116
- utility_1.debug.log("ReactifySearchBase", "context", memoValue);
117
- return memoValue;
118
116
  }, [config, props, searchQuery, instantSearchVisible, sortOption]);
117
+ utility_1.debug.hook("ReactifySearchProvider", "context", contextValue);
118
+ utility_1.debug.hook("ReactifySearchProvider", "searchQuery", searchQuery);
119
+ utility_1.debug.hook("ReactifySearchProvider", "sortOption", sortOption);
119
120
  if (!contextValue) {
120
121
  if (props.renderBooting) {
121
122
  return props.renderBooting();
@@ -128,4 +129,4 @@ const ReactifySearchInner = (props) => {
128
129
  return (react_1.default.createElement(hooks_1.ReactifySearchContext.Provider, { value: contextValue },
129
130
  react_1.default.createElement(components_1.UtilityAuthenticatedReactiveBase, null, props.children)));
130
131
  };
131
- //# sourceMappingURL=ReactifySearchBase.js.map
132
+ //# sourceMappingURL=ReactifySearchProvider.js.map
@@ -0,0 +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\";\nimport * as Sentry from \"@sentry/react\";\n\nimport { ReactifySearchContext, useConfig } from \"../../hooks\";\nimport { UtilityAuthenticatedReactiveBase } from \"../../components\";\nimport { debug } from \"../../utility\";\n\nexport type ReactifySearchProviderProps = {\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 /** Specific filter group handle, used to override automated logic */\n filtersHandle?: 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: Allows you to wrap the ReactifySearchProvider in your own ReactiveBase component */\n noReactiveBase?: boolean;\n /** Advanced usage: Array of additional component IDs managed outside of Reactify Search */\n additionalComponentHandles?: 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?: {\n username: string;\n password: string;\n endpoint: string;\n };\n /** Advanced usage: Override the default ReactiveBase theme */\n theme?: Record<string, unknown>;\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 Sentry.setTags({\n \"reactifysearch.index\": props.index,\n \"reactifysearch.shop\": props.shopifyPermanentDomain,\n \"reactifysearch.mode\": props.mode,\n \"reactifysearch.collection\":\n props.mode === \"collection\" ? props.collectionHandle : undefined,\n \"reactifysearch.filter\": props.filtersHandle,\n });\n }, [props]);\n\n return (\n <Sentry.ErrorBoundary fallback={<p>An error has occurred</p>}>\n <ReactifySearchInner {...props} />\n </Sentry.ErrorBoundary>\n );\n};\n\nconst ReactifySearchInner: React.FC<ReactifySearchProviderProps> = (props) => {\n const { config } = useConfig(props.shopifyPermanentDomain, props.configId);\n\n const [searchQuery, setSearchQuery] = React.useState<string>(\"\");\n const [instantSearchVisible, setInstantSearchVisible] =\n React.useState<boolean>(false);\n const [sortOption, setSortOption] = React.useState<string>(\"\");\n\n const credentials = props.credentials ?? {\n username: \"guest\",\n password: \"password\",\n endpoint: \"https://api.search.reactify.app\",\n };\n\n const theme = props.theme ?? {\n typography: {\n fontFamily: \"inherit\",\n fontSize: \"inherit\",\n },\n };\n\n const searchQueryFromURL = 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 const searchSortFromURL = React.useMemo(() => {\n if (typeof window === \"undefined\") {\n return;\n }\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get(\"sort\") ?? undefined;\n }, [typeof window !== \"undefined\" && window.location.search]);\n\n React.useEffect(() => {\n if (searchQueryFromURL && searchQuery !== searchQueryFromURL) {\n setSearchQuery(searchQueryFromURL);\n }\n }, [searchQueryFromURL]);\n\n React.useEffect(() => {\n if (searchSortFromURL && sortOption !== searchSortFromURL) {\n setSortOption(searchSortFromURL);\n }\n }, [searchSortFromURL]);\n\n React.useEffect(() => {\n if (typeof window == \"undefined\") {\n return;\n }\n\n if (window.location.search === \"\" && sortOption) {\n setSortOption(sortOption);\n }\n }, [typeof window !== \"undefined\" && window.location.search]);\n\n const contextValue = React.useMemo(() => {\n if (!config) {\n return;\n }\n\n return {\n config: config,\n options: {\n ...props,\n index: props.index ?? config.index,\n filtersHandle: props.filtersHandle,\n credentials: credentials,\n theme: theme,\n },\n search: {\n searchQuery: searchQuery,\n setSearchQuery: setSearchQuery,\n instantSearchVisible: instantSearchVisible,\n setInstantSearchVisible: setInstantSearchVisible,\n },\n sortby: {\n sortOption: sortOption,\n setSortOption: setSortOption,\n },\n };\n }, [config, props, searchQuery, instantSearchVisible, sortOption]);\n\n debug.hook(\"ReactifySearchProvider\", \"context\", contextValue);\n debug.hook(\"ReactifySearchProvider\", \"searchQuery\", searchQuery);\n debug.hook(\"ReactifySearchProvider\", \"sortOption\", sortOption);\n\n if (!contextValue) {\n if (props.renderBooting) {\n return props.renderBooting();\n }\n return null;\n }\n\n if (props.noReactiveBase) {\n return (\n <ReactifySearchContext.Provider value={contextValue}>\n {props.children}\n </ReactifySearchContext.Provider>\n );\n }\n\n return (\n <ReactifySearchContext.Provider value={contextValue}>\n <UtilityAuthenticatedReactiveBase>\n {props.children}\n </UtilityAuthenticatedReactiveBase>\n </ReactifySearchContext.Provider>\n );\n};\n"]}
@@ -0,0 +1 @@
1
+ export * from "./ReactifySearchProvider";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./ReactifySearchProvider"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ReactifySearchProvider/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2DAAyC","sourcesContent":["export * from \"./ReactifySearchProvider\";\n"]}
@@ -9,7 +9,7 @@ export declare type ResultProps = ReactivesearchResultProps & {
9
9
  callouts: ElasticCallout[];
10
10
  products: ElasticProduct[];
11
11
  };
12
- export declare type ResultStackProps = {
12
+ export declare type ResultsProps = {
13
13
  /** Style prop for the list wrapper */
14
14
  listStyle?: React.HTMLAttributes<HTMLElement>["style"];
15
15
  /** Classname prop for the list wrapper */
@@ -37,4 +37,4 @@ export declare type ResultStackProps = {
37
37
  /** Advanced Usage: Override the default amount of results per page */
38
38
  pageSize?: number;
39
39
  };
40
- export declare const ResultStack: React.FC<ResultStackProps>;
40
+ export declare const Results: React.FC<ResultsProps>;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ResultStack = void 0;
6
+ exports.Results = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const ReactiveList_1 = __importDefault(require("@appbaseio/reactivesearch/lib/components/result/ReactiveList"));
9
9
  const ResultCardCallout_1 = require("./ResultCardCallout");
@@ -11,27 +11,28 @@ const ResultCardProduct_1 = require("./ResultCardProduct");
11
11
  const ResultPaginationNumbered_1 = require("./ResultPaginationNumbered");
12
12
  const ResultPaginationLoadMore_1 = require("./ResultPaginationLoadMore");
13
13
  const ResultPaginationNextPrev_1 = require("./ResultPaginationNextPrev");
14
- const hooks_1 = require("../../hooks");
15
14
  const types_1 = require("../../types");
16
- const ResultStack = (props) => {
15
+ const hooks_1 = require("../../hooks");
16
+ const utility_1 = require("../../utility");
17
+ const Results = (props) => {
17
18
  const reactiveReactiveListProps = (0, hooks_1.useReactiveReactiveListProps)({
18
19
  pageSize: props.pageSize,
19
20
  });
20
- return (react_1.default.createElement(ReactiveList_1.default, Object.assign({}, reactiveReactiveListProps, { render: (reactivesearchResultProps) => (react_1.default.createElement(ResultStackInner, Object.assign({}, props, { reactivesearchResultProps: reactivesearchResultProps }))), renderPagination: (reactivesearchPaginationProps) => (react_1.default.createElement(ResultStackPaginationStack, Object.assign({}, props, reactivesearchPaginationProps))) })));
21
+ return (react_1.default.createElement(ReactiveList_1.default, Object.assign({}, reactiveReactiveListProps, { render: (reactivesearchResultProps) => (react_1.default.createElement(ResultsInner, Object.assign({}, props, { reactivesearchResultProps: reactivesearchResultProps }))), renderPagination: (reactivesearchPaginationProps) => (react_1.default.createElement(ResultsPaginationStack, Object.assign({}, props, reactivesearchPaginationProps))) })));
21
22
  };
22
- exports.ResultStack = ResultStack;
23
- const ResultStackRenderErrorComponent = (props) => {
23
+ exports.Results = Results;
24
+ const ResultsRenderErrorComponent = (props) => {
24
25
  return (react_1.default.createElement("div", null,
25
26
  "Error: ",
26
27
  props.error.statusText));
27
28
  };
28
- const ResultStackRenderLoadingComponent = () => {
29
+ const ResultsRenderLoadingComponent = () => {
29
30
  return react_1.default.createElement("div", null, "Loading");
30
31
  };
31
- const ResultStackRenderNoResultsComponent = () => {
32
+ const ResultsRenderNoResultsComponent = () => {
32
33
  return react_1.default.createElement("div", null, "No results");
33
34
  };
34
- const ResultStackInner = (props) => {
35
+ const ResultsInner = (props) => {
35
36
  var _a, _b, _c;
36
37
  const { track } = (0, hooks_1.useAnalytics)();
37
38
  const { searchQuery } = (0, hooks_1.useSearch)();
@@ -45,24 +46,40 @@ const ResultStackInner = (props) => {
45
46
  gridTemplateColumns: "repeat(4, minmax(0, 1fr))",
46
47
  };
47
48
  }, [props.listStyle]);
49
+ react_1.default.useEffect(() => {
50
+ if (!props.reactivesearchResultProps.loading &&
51
+ !props.reactivesearchResultProps.resultStats.numberOfResults) {
52
+ if (searchQuery) {
53
+ track({
54
+ eventName: "zeroResults",
55
+ payload: {
56
+ searchTerm: searchQuery,
57
+ },
58
+ });
59
+ }
60
+ }
61
+ }, [
62
+ props.reactivesearchResultProps.loading,
63
+ props.reactivesearchResultProps.resultStats.numberOfResults,
64
+ searchQuery,
65
+ ]);
48
66
  if (props.reactivesearchResultProps.error) {
49
- const RenderErrorComponent = (_a = props.renderError) !== null && _a !== void 0 ? _a : ResultStackRenderErrorComponent;
67
+ utility_1.debug.breadcrumb({
68
+ category: "result",
69
+ message: "error",
70
+ data: {
71
+ error: props.reactivesearchResultProps.error,
72
+ },
73
+ });
74
+ const RenderErrorComponent = (_a = props.renderError) !== null && _a !== void 0 ? _a : ResultsRenderErrorComponent;
50
75
  return (react_1.default.createElement(RenderErrorComponent, { error: props.reactivesearchResultProps.error }));
51
76
  }
52
77
  if (!initialSearchHasRun) {
53
- const RenderLoadingComponent = (_b = props.renderLoading) !== null && _b !== void 0 ? _b : ResultStackRenderLoadingComponent;
78
+ const RenderLoadingComponent = (_b = props.renderLoading) !== null && _b !== void 0 ? _b : ResultsRenderLoadingComponent;
54
79
  return react_1.default.createElement(RenderLoadingComponent, null);
55
80
  }
56
81
  if (!props.reactivesearchResultProps.resultStats.numberOfResults) {
57
- if (searchQuery) {
58
- track({
59
- eventName: "zeroResults",
60
- payload: {
61
- searchTerm: searchQuery,
62
- },
63
- });
64
- }
65
- const RenderNoResultsComponent = (_c = props.renderNoResults) !== null && _c !== void 0 ? _c : ResultStackRenderNoResultsComponent;
82
+ const RenderNoResultsComponent = (_c = props.renderNoResults) !== null && _c !== void 0 ? _c : ResultsRenderNoResultsComponent;
66
83
  return react_1.default.createElement(RenderNoResultsComponent, null);
67
84
  }
68
85
  return (react_1.default.createElement(react_1.default.Fragment, null,
@@ -76,12 +93,12 @@ const ResultStackInner = (props) => {
76
93
  }
77
94
  return null;
78
95
  })),
79
- react_1.default.createElement(ResultStackPaginationStackLoadMore, Object.assign({}, props, props.reactivesearchResultProps))));
96
+ react_1.default.createElement(ResultsPaginationStackLoadMore, Object.assign({}, props, props.reactivesearchResultProps))));
80
97
  };
81
98
  /** Handles rendering pagination for types that use "pagination props" */
82
- const ResultStackPaginationStack = (props) => {
99
+ const ResultsPaginationStack = (props) => {
83
100
  const { options } = (0, hooks_1.useReactifySearchContext)();
84
- const { filterStack } = (0, hooks_1.useFilterStack)();
101
+ const { filterStack } = (0, hooks_1.useFilters)();
85
102
  if (options.mode === "instant-search") {
86
103
  return null;
87
104
  }
@@ -94,9 +111,9 @@ const ResultStackPaginationStack = (props) => {
94
111
  return null;
95
112
  };
96
113
  /** Handles rendering pagination for types that use "result props" */
97
- const ResultStackPaginationStackLoadMore = (props) => {
114
+ const ResultsPaginationStackLoadMore = (props) => {
98
115
  const { options } = (0, hooks_1.useReactifySearchContext)();
99
- const { filterStack } = (0, hooks_1.useFilterStack)();
116
+ const { filterStack } = (0, hooks_1.useFilters)();
100
117
  if (options.mode === "instant-search") {
101
118
  return null;
102
119
  }
@@ -105,4 +122,4 @@ const ResultStackPaginationStackLoadMore = (props) => {
105
122
  }
106
123
  return null;
107
124
  };
108
- //# sourceMappingURL=ResultStack.js.map
125
+ //# sourceMappingURL=Results.js.map