react-instantsearch 7.7.3 → 7.8.1

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.
@@ -8,7 +8,7 @@ exports.Hits = Hits;
8
8
  var _instantsearchUiComponents = require("instantsearch-ui-components");
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _reactInstantsearchCore = require("react-instantsearch-core");
11
- var _excluded = ["escapeHTML", "transformItems", "hitComponent"],
11
+ var _excluded = ["escapeHTML", "transformItems", "hitComponent", "bannerComponent"],
12
12
  _excluded2 = ["hit", "index"];
13
13
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
14
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -34,6 +34,7 @@ function Hits(_ref2) {
34
34
  transformItems = _ref2.transformItems,
35
35
  _ref2$hitComponent = _ref2.hitComponent,
36
36
  HitComponent = _ref2$hitComponent === void 0 ? DefaultHitComponent : _ref2$hitComponent,
37
+ BannerComponent = _ref2.bannerComponent,
37
38
  props = _objectWithoutProperties(_ref2, _excluded);
38
39
  var _useHits = (0, _reactInstantsearchCore.useHits)({
39
40
  escapeHTML: escapeHTML,
@@ -42,22 +43,30 @@ function Hits(_ref2) {
42
43
  $$widgetType: 'ais.hits'
43
44
  }),
44
45
  hits = _useHits.hits,
46
+ banner = _useHits.banner,
45
47
  sendEvent = _useHits.sendEvent;
46
- var itemComponent = function itemComponent(_ref3) {
47
- var hit = _ref3.hit,
48
- index = _ref3.index,
49
- itemProps = _objectWithoutProperties(_ref3, _excluded2);
50
- return /*#__PURE__*/_react.default.createElement("li", _extends({
51
- key: hit.objectID
52
- }, itemProps), /*#__PURE__*/_react.default.createElement(HitComponent, {
53
- hit: hit,
54
- sendEvent: sendEvent
55
- }));
56
- };
48
+ var itemComponent = (0, _react.useMemo)(function () {
49
+ return function (_ref3) {
50
+ var hit = _ref3.hit,
51
+ index = _ref3.index,
52
+ itemProps = _objectWithoutProperties(_ref3, _excluded2);
53
+ return /*#__PURE__*/_react.default.createElement("li", _extends({
54
+ key: hit.objectID
55
+ }, itemProps), /*#__PURE__*/_react.default.createElement(HitComponent, {
56
+ hit: hit,
57
+ sendEvent: sendEvent
58
+ }));
59
+ };
60
+ }, [HitComponent, sendEvent]);
61
+ var bannerComponent = BannerComponent === false ? function () {
62
+ return null;
63
+ } : BannerComponent;
57
64
  var uiProps = {
58
65
  hits: hits,
59
66
  sendEvent: sendEvent,
60
- itemComponent: itemComponent
67
+ itemComponent: itemComponent,
68
+ banner: banner,
69
+ bannerComponent: bannerComponent
61
70
  };
62
71
  return /*#__PURE__*/_react.default.createElement(HitsUiComponent, _extends({}, props, uiProps));
63
72
  }
@@ -3,12 +3,17 @@ import type { HitsProps as HitsUiComponentProps } from 'instantsearch-ui-compone
3
3
  import type { Hit, BaseHit } from 'instantsearch.js';
4
4
  import type { SendEventForHits } from 'instantsearch.js/es/lib/utils';
5
5
  import type { UseHitsProps } from 'react-instantsearch-core';
6
- type UiProps<THit extends BaseHit> = Pick<HitsUiComponentProps<Hit<THit>>, 'hits' | 'sendEvent' | 'itemComponent' | 'emptyComponent'>;
6
+ type UiProps<THit extends BaseHit> = Pick<HitsUiComponentProps<Hit<THit>>, 'hits' | 'sendEvent' | 'itemComponent' | 'emptyComponent' | 'banner' | 'bannerComponent'>;
7
7
  export type HitsProps<THit extends BaseHit> = Omit<HitsUiComponentProps<Hit<THit>>, keyof UiProps<THit>> & {
8
8
  hitComponent?: React.JSXElementConstructor<{
9
9
  hit: Hit<THit>;
10
10
  sendEvent: SendEventForHits;
11
11
  }>;
12
+ } & {
13
+ bannerComponent?: React.JSXElementConstructor<{
14
+ banner: Required<HitsUiComponentProps<Hit<THit>>>['banner'];
15
+ className: string;
16
+ }> | false;
12
17
  } & UseHitsProps<THit>;
13
- export declare function Hits<THit extends BaseHit = BaseHit>({ escapeHTML, transformItems, hitComponent: HitComponent, ...props }: HitsProps<THit>): JSX.Element;
18
+ export declare function Hits<THit extends BaseHit = BaseHit>({ escapeHTML, transformItems, hitComponent: HitComponent, bannerComponent: BannerComponent, ...props }: HitsProps<THit>): JSX.Element;
14
19
  export {};
@@ -1,10 +1,10 @@
1
- var _excluded = ["escapeHTML", "transformItems", "hitComponent"],
1
+ var _excluded = ["escapeHTML", "transformItems", "hitComponent", "bannerComponent"],
2
2
  _excluded2 = ["hit", "index"];
3
3
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
4
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
5
5
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
6
6
  import { createHitsComponent } from 'instantsearch-ui-components';
7
- import React, { createElement, Fragment } from 'react';
7
+ import React, { createElement, Fragment, useMemo } from 'react';
8
8
  import { useHits } from 'react-instantsearch-core';
9
9
  // @MAJOR: Move default hit component back to the UI library
10
10
  // once flavour specificities are erased
@@ -25,6 +25,7 @@ export function Hits(_ref2) {
25
25
  transformItems = _ref2.transformItems,
26
26
  _ref2$hitComponent = _ref2.hitComponent,
27
27
  HitComponent = _ref2$hitComponent === void 0 ? DefaultHitComponent : _ref2$hitComponent,
28
+ BannerComponent = _ref2.bannerComponent,
28
29
  props = _objectWithoutProperties(_ref2, _excluded);
29
30
  var _useHits = useHits({
30
31
  escapeHTML: escapeHTML,
@@ -33,22 +34,30 @@ export function Hits(_ref2) {
33
34
  $$widgetType: 'ais.hits'
34
35
  }),
35
36
  hits = _useHits.hits,
37
+ banner = _useHits.banner,
36
38
  sendEvent = _useHits.sendEvent;
37
- var itemComponent = function itemComponent(_ref3) {
38
- var hit = _ref3.hit,
39
- index = _ref3.index,
40
- itemProps = _objectWithoutProperties(_ref3, _excluded2);
41
- return /*#__PURE__*/React.createElement("li", _extends({
42
- key: hit.objectID
43
- }, itemProps), /*#__PURE__*/React.createElement(HitComponent, {
44
- hit: hit,
45
- sendEvent: sendEvent
46
- }));
47
- };
39
+ var itemComponent = useMemo(function () {
40
+ return function (_ref3) {
41
+ var hit = _ref3.hit,
42
+ index = _ref3.index,
43
+ itemProps = _objectWithoutProperties(_ref3, _excluded2);
44
+ return /*#__PURE__*/React.createElement("li", _extends({
45
+ key: hit.objectID
46
+ }, itemProps), /*#__PURE__*/React.createElement(HitComponent, {
47
+ hit: hit,
48
+ sendEvent: sendEvent
49
+ }));
50
+ };
51
+ }, [HitComponent, sendEvent]);
52
+ var bannerComponent = BannerComponent === false ? function () {
53
+ return null;
54
+ } : BannerComponent;
48
55
  var uiProps = {
49
56
  hits: hits,
50
57
  sendEvent: sendEvent,
51
- itemComponent: itemComponent
58
+ itemComponent: itemComponent,
59
+ banner: banner,
60
+ bannerComponent: bannerComponent
52
61
  };
53
62
  return /*#__PURE__*/React.createElement(HitsUiComponent, _extends({}, props, uiProps));
54
63
  }