instantsearch-ui-components
Version:
Common UI components for InstantSearch.
69 lines (66 loc) • 3.41 kB
JavaScript
import { _ as _$1 } from '@swc/helpers/esm/_object_spread.js';
import { _ as _$2 } from '@swc/helpers/esm/_object_spread_props.js';
import { _ } from '@swc/helpers/esm/_object_without_properties.js';
import { createDefaultEmptyComponent } from './recommend-shared/DefaultEmpty.js';
import { createDefaultHeaderComponent } from './recommend-shared/DefaultHeader.js';
import { createDefaultItemComponent } from './recommend-shared/DefaultItem.js';
import { createListComponent } from './recommend-shared/List.js';
import { cx } from '../lib/cx.js';
function createTrendingItemsComponent(param) {
var createElement = param.createElement, Fragment = param.Fragment;
return function TrendingItems(userProps) {
var _userProps_classNames = userProps.classNames, classNames = _userProps_classNames === void 0 ? {} : _userProps_classNames, tmp = userProps.emptyComponent, EmptyComponent = tmp === void 0 ? createDefaultEmptyComponent({
createElement: createElement,
Fragment: Fragment
}) : tmp, tmp1 = userProps.headerComponent, HeaderComponent = tmp1 === void 0 ? createDefaultHeaderComponent({
createElement: createElement,
Fragment: Fragment
}) : tmp1, tmp2 = userProps.itemComponent, ItemComponent = tmp2 === void 0 ? createDefaultItemComponent({
createElement: createElement,
Fragment: Fragment
}) : tmp2, tmp3 = userProps.layout, Layout = tmp3 === void 0 ? createListComponent({
createElement: createElement,
Fragment: Fragment
}) : tmp3, items = userProps.items, status = userProps.status, userTranslations = userProps.translations, sendEvent = userProps.sendEvent, props = _(userProps, [
"classNames",
"emptyComponent",
"headerComponent",
"itemComponent",
"layout",
"items",
"status",
"translations",
"sendEvent"
]);
var translations = _$1({
title: 'Trending items',
sliderLabel: 'Trending items'
}, userTranslations);
var cssClasses = {
root: cx('ais-TrendingItems', classNames.root),
emptyRoot: cx('ais-TrendingItems', classNames.root, 'ais-TrendingItems--empty', classNames.emptyRoot, props.className),
title: cx('ais-TrendingItems-title', classNames.title),
container: cx('ais-TrendingItems-container', classNames.container),
list: cx('ais-TrendingItems-list', classNames.list),
item: cx('ais-TrendingItems-item', classNames.item)
};
if (items.length === 0 && status === 'idle') {
return /*#__PURE__*/ createElement("section", _$2(_$1({}, props), {
className: cssClasses.emptyRoot
}), /*#__PURE__*/ createElement(EmptyComponent, null));
}
return /*#__PURE__*/ createElement("section", _$2(_$1({}, props), {
className: cssClasses.root
}), /*#__PURE__*/ createElement(HeaderComponent, {
classNames: cssClasses,
items: items,
translations: translations
}), /*#__PURE__*/ createElement(Layout, {
classNames: cssClasses,
itemComponent: ItemComponent,
items: items,
sendEvent: sendEvent
}));
};
}
export { createTrendingItemsComponent };