UNPKG

instantsearch-ui-components

Version:

Common UI components for InstantSearch.

77 lines (76 loc) 4.31 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.createRelatedProductsComponent = createRelatedProductsComponent; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _lib = require("../lib"); var _recommendShared = require("./recommend-shared"); var _excluded = ["classNames", "emptyComponent", "headerComponent", "itemComponent", "layout", "items", "status", "translations", "sendEvent"]; function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function createRelatedProductsComponent(_ref) { var createElement = _ref.createElement, Fragment = _ref.Fragment; return function RelatedProducts(userProps) { var _userProps$classNames = userProps.classNames, classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames, _userProps$emptyCompo = userProps.emptyComponent, EmptyComponent = _userProps$emptyCompo === void 0 ? (0, _recommendShared.createDefaultEmptyComponent)({ createElement: createElement, Fragment: Fragment }) : _userProps$emptyCompo, _userProps$headerComp = userProps.headerComponent, HeaderComponent = _userProps$headerComp === void 0 ? (0, _recommendShared.createDefaultHeaderComponent)({ createElement: createElement, Fragment: Fragment }) : _userProps$headerComp, _userProps$itemCompon = userProps.itemComponent, ItemComponent = _userProps$itemCompon === void 0 ? (0, _recommendShared.createDefaultItemComponent)({ createElement: createElement, Fragment: Fragment }) : _userProps$itemCompon, _userProps$layout = userProps.layout, Layout = _userProps$layout === void 0 ? (0, _recommendShared.createListComponent)({ createElement: createElement, Fragment: Fragment }) : _userProps$layout, items = userProps.items, status = userProps.status, userTranslations = userProps.translations, sendEvent = userProps.sendEvent, props = (0, _objectWithoutProperties2.default)(userProps, _excluded); var translations = _objectSpread({ title: 'Related products', sliderLabel: 'Related products' }, userTranslations); var cssClasses = { root: (0, _lib.cx)('ais-RelatedProducts', classNames.root), emptyRoot: (0, _lib.cx)('ais-RelatedProducts', classNames.root, 'ais-RelatedProducts--empty', classNames.emptyRoot, props.className), title: (0, _lib.cx)('ais-RelatedProducts-title', classNames.title), container: (0, _lib.cx)('ais-RelatedProducts-container', classNames.container), list: (0, _lib.cx)('ais-RelatedProducts-list', classNames.list), item: (0, _lib.cx)('ais-RelatedProducts-item', classNames.item) }; if (items.length === 0 && status === 'idle') { return createElement("section", (0, _extends2.default)({}, props, { className: cssClasses.emptyRoot }), createElement(EmptyComponent, null)); } return createElement("section", (0, _extends2.default)({}, props, { className: cssClasses.root }), createElement(HeaderComponent, { classNames: cssClasses, items: items, translations: translations }), createElement(Layout, { classNames: cssClasses, itemComponent: ItemComponent, items: items, sendEvent: sendEvent })); }; }