react-instantsearch 7.7.2 → 7.8.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.
@@ -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,6 +43,7 @@ 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
48
  var itemComponent = function itemComponent(_ref3) {
47
49
  var hit = _ref3.hit,
@@ -54,10 +56,15 @@ function Hits(_ref2) {
54
56
  sendEvent: sendEvent
55
57
  }));
56
58
  };
59
+ var bannerComponent = BannerComponent === false ? function () {
60
+ return null;
61
+ } : BannerComponent;
57
62
  var uiProps = {
58
63
  hits: hits,
59
64
  sendEvent: sendEvent,
60
- itemComponent: itemComponent
65
+ itemComponent: itemComponent,
66
+ banner: banner,
67
+ bannerComponent: bannerComponent
61
68
  };
62
69
  return /*#__PURE__*/_react.default.createElement(HitsUiComponent, _extends({}, props, uiProps));
63
70
  }
@@ -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,4 +1,4 @@
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; }
@@ -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,6 +34,7 @@ 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
39
  var itemComponent = function itemComponent(_ref3) {
38
40
  var hit = _ref3.hit,
@@ -45,10 +47,15 @@ export function Hits(_ref2) {
45
47
  sendEvent: sendEvent
46
48
  }));
47
49
  };
50
+ var bannerComponent = BannerComponent === false ? function () {
51
+ return null;
52
+ } : BannerComponent;
48
53
  var uiProps = {
49
54
  hits: hits,
50
55
  sendEvent: sendEvent,
51
- itemComponent: itemComponent
56
+ itemComponent: itemComponent,
57
+ banner: banner,
58
+ bannerComponent: bannerComponent
52
59
  };
53
60
  return /*#__PURE__*/React.createElement(HitsUiComponent, _extends({}, props, uiProps));
54
61
  }
@@ -7,7 +7,7 @@
7
7
 
8
8
  var React__default = 'default' in React ? React['default'] : React;
9
9
 
10
- var version = '7.7.2';
10
+ var version = '7.8.0';
11
11
 
12
12
  // Copyright Joyent, Inc. and other Node contributors.
13
13
  //
@@ -4437,7 +4437,7 @@
4437
4437
 
4438
4438
  var SearchResults_1 = SearchResults;
4439
4439
 
4440
- var version$1 = '3.18.0';
4440
+ var version$1 = '3.19.0';
4441
4441
 
4442
4442
  var escapeFacetValue$3 = escapeFacetValue_1.escapeFacetValue;
4443
4443
 
@@ -9986,9 +9986,18 @@
9986
9986
  },
9987
9987
  getScopedResults: function getScopedResults() {
9988
9988
  var widgetParent = this.getParent();
9989
-
9990
- // If the widget is the root, we consider itself as the only sibling.
9991
- var widgetSiblings = widgetParent ? widgetParent.getWidgets() : [this];
9989
+ var widgetSiblings;
9990
+ if (widgetParent) {
9991
+ widgetSiblings = widgetParent.getWidgets();
9992
+ } else if (indexName.length === 0) {
9993
+ // The widget is the root but has no index name:
9994
+ // we resolve results from its children index widgets
9995
+ widgetSiblings = this.getWidgets();
9996
+ } else {
9997
+ // The widget is the root and has an index name:
9998
+ // we consider itself as the only sibling
9999
+ widgetSiblings = [this];
10000
+ }
9992
10001
  return resolveScopedResultsFromWidgets(widgetSiblings);
9993
10002
  },
9994
10003
  getParent: function getParent() {
@@ -10316,7 +10325,7 @@
10316
10325
  _helper,
10317
10326
  _derivedHelper2;
10318
10327
  localWidgets.forEach(function (widget) {
10319
- if (widget.dispose) {
10328
+ if (widget.dispose && helper) {
10320
10329
  // The dispose function is always called once the instance is started
10321
10330
  // (it's an effect of `removeWidgets`). The index is initialized and
10322
10331
  // the Helper is available. We don't care about the return value of
@@ -12711,7 +12720,7 @@
12711
12720
  };
12712
12721
  }
12713
12722
 
12714
- var version$3 = '4.67.0';
12723
+ var version$3 = '4.68.1';
12715
12724
 
12716
12725
  function _typeof$o(obj) {
12717
12726
  "@babel/helpers - typeof";
@@ -15339,6 +15348,7 @@
15339
15348
  });
15340
15349
  },
15341
15350
  getWidgetRenderState: function getWidgetRenderState(_ref2) {
15351
+ var _results$renderingCon, _results$renderingCon2, _results$renderingCon3;
15342
15352
  var results = _ref2.results,
15343
15353
  helper = _ref2.helper,
15344
15354
  instantSearchInstance = _ref2.instantSearchInstance;
@@ -15364,6 +15374,7 @@
15364
15374
  return {
15365
15375
  hits: [],
15366
15376
  results: undefined,
15377
+ banner: undefined,
15367
15378
  sendEvent: sendEvent,
15368
15379
  bindEvent: bindEvent,
15369
15380
  widgetParams: widgetParams
@@ -15377,9 +15388,11 @@
15377
15388
  var transformedHits = transformItems(hitsWithAbsolutePositionAndQueryID, {
15378
15389
  results: results
15379
15390
  });
15391
+ var banner = (_results$renderingCon = results.renderingContent) === null || _results$renderingCon === void 0 ? void 0 : (_results$renderingCon2 = _results$renderingCon.widgets) === null || _results$renderingCon2 === void 0 ? void 0 : (_results$renderingCon3 = _results$renderingCon2.banners) === null || _results$renderingCon3 === void 0 ? void 0 : _results$renderingCon3[0];
15380
15392
  return {
15381
15393
  hits: transformedHits,
15382
15394
  results: results,
15395
+ banner: banner,
15383
15396
  sendEvent: sendEvent,
15384
15397
  bindEvent: bindEvent,
15385
15398
  widgetParams: widgetParams
@@ -18976,6 +18989,14 @@
18976
18989
  results: results,
18977
18990
  scopedResults: searchIndex.getScopedResults()
18978
18991
  });
18992
+ } else if (search.mainIndex.getIndexName().length === 0) {
18993
+ // If the main index has no name, we get the scoped results from
18994
+ // the first child index instead.
18995
+ var childIndex = search.mainIndex.getWidgets().find(isIndexWidget);
18996
+ childIndex && setSearchResults({
18997
+ results: getIndexSearchResults(searchIndex).results,
18998
+ scopedResults: childIndex.getScopedResults()
18999
+ });
18979
19000
  }
18980
19001
  }
18981
19002
  search.addListener('render', handleRender);
@@ -19640,12 +19661,43 @@
19640
19661
  };
19641
19662
  }
19642
19663
 
19643
- var _excluded$d = ["classNames", "hits", "itemComponent", "sendEvent", "emptyComponent"];
19664
+ var _excluded$d = ["classNames", "hits", "itemComponent", "sendEvent", "emptyComponent", "banner", "bannerComponent"];
19644
19665
 
19645
19666
  // Should be imported from a shared package in the future
19646
19667
 
19647
- function createHitsComponent(_ref) {
19668
+ function createDefaultBannerComponent(_ref) {
19648
19669
  var createElement = _ref.createElement;
19670
+ return function DefaultBanner(_ref2) {
19671
+ var _banner$link;
19672
+ var classNames = _ref2.classNames,
19673
+ banner = _ref2.banner;
19674
+ if (!banner.image.urls[0].url) {
19675
+ return null;
19676
+ }
19677
+ return createElement("aside", {
19678
+ className: cx('ais-Hits-banner', classNames.bannerRoot)
19679
+ }, (_banner$link = banner.link) !== null && _banner$link !== void 0 && _banner$link.url ? createElement("a", {
19680
+ className: cx('ais-Hits-banner-link', classNames.bannerLink),
19681
+ href: banner.link.url,
19682
+ target: banner.link.target
19683
+ }, createElement("img", {
19684
+ className: cx('ais-Hits-banner-image', classNames.bannerImage),
19685
+ src: banner.image.urls[0].url,
19686
+ alt: banner.image.title
19687
+ })) : createElement("img", {
19688
+ className: cx('ais-Hits-banner-image', classNames.bannerImage),
19689
+ src: banner.image.urls[0].url,
19690
+ alt: banner.image.title
19691
+ }));
19692
+ };
19693
+ }
19694
+ function createHitsComponent(_ref3) {
19695
+ var createElement = _ref3.createElement,
19696
+ Fragment = _ref3.Fragment;
19697
+ var DefaultBannerComponent = createDefaultBannerComponent({
19698
+ createElement: createElement,
19699
+ Fragment: Fragment
19700
+ });
19649
19701
  return function Hits(userProps) {
19650
19702
  var _userProps$classNames = userProps.classNames,
19651
19703
  classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
@@ -19653,15 +19705,18 @@
19653
19705
  ItemComponent = userProps.itemComponent,
19654
19706
  sendEvent = userProps.sendEvent,
19655
19707
  EmptyComponent = userProps.emptyComponent,
19708
+ banner = userProps.banner,
19709
+ BannerComponent = userProps.bannerComponent,
19656
19710
  props = _objectWithoutProperties$d(userProps, _excluded$d);
19657
- if (hits.length === 0 && EmptyComponent) {
19658
- return createElement(EmptyComponent, {
19659
- className: cx('ais-Hits', classNames.root, cx('ais-Hits--empty', classNames.emptyRoot), props.className)
19660
- });
19661
- }
19662
19711
  return createElement("div", _extends$2({}, props, {
19663
19712
  className: cx('ais-Hits', classNames.root, hits.length === 0 && cx('ais-Hits--empty', classNames.emptyRoot), props.className)
19664
- }), createElement("ol", {
19713
+ }), banner && (BannerComponent ? createElement(BannerComponent, {
19714
+ className: cx('ais-Hits-banner', classNames.bannerRoot),
19715
+ banner: banner
19716
+ }) : createElement(DefaultBannerComponent, {
19717
+ classNames: classNames,
19718
+ banner: banner
19719
+ })), hits.length === 0 && EmptyComponent ? createElement(EmptyComponent, null) : createElement("ol", {
19665
19720
  className: cx('ais-Hits-list', classNames.list)
19666
19721
  }, hits.map(function (hit, index) {
19667
19722
  return createElement(ItemComponent, {
@@ -20046,7 +20101,7 @@
20046
20101
  }));
20047
20102
  }
20048
20103
 
20049
- var _excluded$p = ["escapeHTML", "transformItems", "hitComponent"],
20104
+ var _excluded$p = ["escapeHTML", "transformItems", "hitComponent", "bannerComponent"],
20050
20105
  _excluded2$4 = ["hit", "index"];
20051
20106
  // @MAJOR: Move default hit component back to the UI library
20052
20107
  // once flavour specificities are erased
@@ -20067,6 +20122,7 @@
20067
20122
  transformItems = _ref2.transformItems,
20068
20123
  _ref2$hitComponent = _ref2.hitComponent,
20069
20124
  HitComponent = _ref2$hitComponent === void 0 ? DefaultHitComponent : _ref2$hitComponent,
20125
+ BannerComponent = _ref2.bannerComponent,
20070
20126
  props = _objectWithoutProperties$c(_ref2, _excluded$p);
20071
20127
  var _useHits = useHits({
20072
20128
  escapeHTML: escapeHTML,
@@ -20075,6 +20131,7 @@
20075
20131
  $$widgetType: 'ais.hits'
20076
20132
  }),
20077
20133
  hits = _useHits.hits,
20134
+ banner = _useHits.banner,
20078
20135
  sendEvent = _useHits.sendEvent;
20079
20136
  var itemComponent = function itemComponent(_ref3) {
20080
20137
  var hit = _ref3.hit,
@@ -20087,10 +20144,15 @@
20087
20144
  sendEvent: sendEvent
20088
20145
  }));
20089
20146
  };
20147
+ var bannerComponent = BannerComponent === false ? function () {
20148
+ return null;
20149
+ } : BannerComponent;
20090
20150
  var uiProps = {
20091
20151
  hits: hits,
20092
20152
  sendEvent: sendEvent,
20093
- itemComponent: itemComponent
20153
+ itemComponent: itemComponent,
20154
+ banner: banner,
20155
+ bannerComponent: bannerComponent
20094
20156
  };
20095
20157
  return /*#__PURE__*/React__default.createElement(HitsUiComponent, _extends$1({}, props, uiProps));
20096
20158
  }