UNPKG

react-instantsearch

Version:
88 lines (84 loc) 4.52 kB
'use strict'; var _object_spread = require('@swc/helpers/_/_object_spread'); var _object_spread_props = require('@swc/helpers/_/_object_spread_props'); var _object_without_properties = require('@swc/helpers/_/_object_without_properties'); var instantsearchUiComponents = require('instantsearch-ui-components'); var React = require('react'); function DefaultHitComponent(param) { var hit = param.hit; return /*#__PURE__*/ React.createElement("div", { style: { wordBreak: 'break-all' } }, JSON.stringify(hit).slice(0, 100), "…"); } function DefaultBanner(param) { var classNames = param.classNames, banner = param.banner; if (!banner.image.urls[0].url) { return null; } return /*#__PURE__*/ React.createElement("aside", { className: instantsearchUiComponents.cx('ais-InfiniteHits-banner', classNames.bannerRoot) }, banner.link ? /*#__PURE__*/ React.createElement("a", { className: instantsearchUiComponents.cx('ais-InfiniteHits-banner-link', classNames.bannerLink), href: banner.link.url, target: banner.link.target }, /*#__PURE__*/ React.createElement("img", { className: instantsearchUiComponents.cx('ais-InfiniteHits-banner-image', classNames.bannerImage), src: banner.image.urls[0].url, alt: banner.image.title })) : /*#__PURE__*/ React.createElement("img", { className: instantsearchUiComponents.cx('ais-InfiniteHits-banner-image', classNames.bannerImage), src: banner.image.urls[0].url, alt: banner.image.title })); } function InfiniteHits(_0) { var tmp = _0.hitComponent, HitComponent = tmp === void 0 ? DefaultHitComponent : tmp, hits = _0.hits, BannerComponent = _0.bannerComponent, banner = _0.banner, sendEvent = _0.sendEvent, isFirstPage = _0.isFirstPage, isLastPage = _0.isLastPage, onShowPrevious = _0.onShowPrevious, onShowMore = _0.onShowMore, _0_classNames = _0.classNames, classNames = _0_classNames === void 0 ? {} : _0_classNames, translations = _0.translations, props = _object_without_properties._(_0, [ "hitComponent", "hits", "bannerComponent", "banner", "sendEvent", "isFirstPage", "isLastPage", "onShowPrevious", "onShowMore", "classNames", "translations" ]); return /*#__PURE__*/ React.createElement("div", _object_spread_props._(_object_spread._({}, props), { className: instantsearchUiComponents.cx('ais-InfiniteHits', classNames.root, hits.length === 0 && instantsearchUiComponents.cx('ais-InfiniteHits--empty', classNames.emptyRoot), props.className) }), onShowPrevious && /*#__PURE__*/ React.createElement("button", { className: instantsearchUiComponents.cx('ais-InfiniteHits-loadPrevious', classNames.loadPrevious, isFirstPage && instantsearchUiComponents.cx('ais-InfiniteHits-loadPrevious--disabled', classNames.disabledLoadPrevious)), onClick: onShowPrevious, disabled: isFirstPage }, translations.showPreviousButtonText), banner && (BannerComponent ? /*#__PURE__*/ React.createElement(BannerComponent, { className: instantsearchUiComponents.cx('ais-InfiniteHits-banner', classNames.bannerRoot), banner: banner }) : /*#__PURE__*/ React.createElement(DefaultBanner, { classNames: classNames, banner: banner })), /*#__PURE__*/ React.createElement("ol", { className: instantsearchUiComponents.cx('ais-InfiniteHits-list', classNames.list) }, hits.map(function(hit) { return /*#__PURE__*/ React.createElement("li", { key: hit.objectID, className: instantsearchUiComponents.cx('ais-InfiniteHits-item', classNames.item), onClick: function onClick() { sendEvent('click:internal', hit, 'Hit Clicked'); }, onAuxClick: function onAuxClick() { sendEvent('click:internal', hit, 'Hit Clicked'); } }, /*#__PURE__*/ React.createElement(HitComponent, { hit: hit, sendEvent: sendEvent })); })), /*#__PURE__*/ React.createElement("button", { className: instantsearchUiComponents.cx('ais-InfiniteHits-loadMore', classNames.loadMore, isLastPage && instantsearchUiComponents.cx('ais-InfiniteHits-loadMore--disabled', classNames.disabledLoadMore)), onClick: onShowMore, disabled: isLastPage }, translations.showMoreButtonText)); } exports.InfiniteHits = InfiniteHits;