react-instantsearch
Version:
⚡ Lightning-fast search for React, by Algolia
61 lines (58 loc) • 3.2 kB
JavaScript
import { createDisplayResultsToolComponent, createButtonComponent, ChevronLeftIcon, ChevronRightIcon } from 'instantsearch-ui-components';
import React, { createElement, Fragment } from 'react';
import { Carousel } from '../../../components/Carousel.js';
function createDisplayResultsTool(itemComponent) {
var DisplayResultsUIComponent = createDisplayResultsToolComponent({
createElement: createElement,
Fragment: Fragment
});
var Button = createButtonComponent({
createElement: createElement
});
var DisplayResultsLayoutComponent = function DisplayResultsLayoutComponent(toolProps) {
return /*#__PURE__*/ React.createElement(DisplayResultsUIComponent, {
toolProps: toolProps,
groupCarouselComponent: function groupCarouselComponent(param) {
var items = param.items, sendEvent = param.sendEvent;
return /*#__PURE__*/ React.createElement(Carousel, {
items: items,
itemComponent: itemComponent,
sendEvent: sendEvent,
showNavigation: false,
headerComponent: function headerComponent(param) {
var canScrollLeft = param.canScrollLeft, canScrollRight = param.canScrollRight, scrollLeft = param.scrollLeft, scrollRight = param.scrollRight;
return /*#__PURE__*/ React.createElement("div", {
className: "ais-ChatToolDisplayResultsCarouselHeader"
}, /*#__PURE__*/ React.createElement("div", {
className: "ais-ChatToolDisplayResultsCarouselHeaderCount"
}, items.length, " result", items.length > 1 ? 's' : ''), /*#__PURE__*/ React.createElement("div", {
className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButtons"
}, /*#__PURE__*/ React.createElement(Button, {
variant: "outline",
size: "sm",
iconOnly: true,
onClick: scrollLeft,
disabled: !canScrollLeft,
className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButton"
}, /*#__PURE__*/ React.createElement(ChevronLeftIcon, {
createElement: createElement
})), /*#__PURE__*/ React.createElement(Button, {
variant: "outline",
size: "sm",
iconOnly: true,
onClick: scrollRight,
disabled: !canScrollRight,
className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButton"
}, /*#__PURE__*/ React.createElement(ChevronRightIcon, {
createElement: createElement
}))));
}
});
}
});
};
return {
layoutComponent: DisplayResultsLayoutComponent
};
}
export { createDisplayResultsTool };