react-instantsearch
Version:
⚡ Lightning-fast search for React, by Algolia
76 lines (74 loc) • 3.5 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "createGroupedResultsTool", {
enumerable: true,
get: function() {
return createGroupedResultsTool;
}
});
var _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
var _instantsearchuicomponents = require("instantsearch-ui-components");
var _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
var _components = require("../../../components");
function createGroupedResultsTool(itemComponent) {
var DisplayResultsUIComponent = (0, _instantsearchuicomponents.createDisplayResultsToolComponent)({
createElement: _react.createElement,
Fragment: _react.Fragment,
useEffect: _react.useEffect,
useRef: _react.useRef
});
var Button = (0, _instantsearchuicomponents.createButtonComponent)({
createElement: _react.createElement
});
var DisplayResultsCarouselHeader = function DisplayResultsCarouselHeader(param) {
var nbItems = param.nbItems, canScrollLeft = param.canScrollLeft, canScrollRight = param.canScrollRight, scrollLeft = param.scrollLeft, scrollRight = param.scrollRight;
return /*#__PURE__*/ _react.default.createElement("div", {
className: "ais-ChatToolDisplayResultsCarouselHeader"
}, /*#__PURE__*/ _react.default.createElement("div", {
className: "ais-ChatToolDisplayResultsCarouselHeaderCount"
}, nbItems, " result", nbItems > 1 ? 's' : ''), /*#__PURE__*/ _react.default.createElement("div", {
className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButtons"
}, /*#__PURE__*/ _react.default.createElement(Button, {
variant: "outline",
size: "sm",
iconOnly: true,
"aria-label": "Previous",
onClick: scrollLeft,
disabled: !canScrollLeft,
className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButton"
}, /*#__PURE__*/ _react.default.createElement(_instantsearchuicomponents.ChevronLeftIcon, {
createElement: _react.createElement
})), /*#__PURE__*/ _react.default.createElement(Button, {
variant: "outline",
size: "sm",
iconOnly: true,
"aria-label": "Next",
onClick: scrollRight,
disabled: !canScrollRight,
className: "ais-ChatToolDisplayResultsCarouselHeaderScrollButton"
}, /*#__PURE__*/ _react.default.createElement(_instantsearchuicomponents.ChevronRightIcon, {
createElement: _react.createElement
}))));
};
var DisplayResultsLayoutComponent = function DisplayResultsLayoutComponent(toolProps) {
return /*#__PURE__*/ _react.default.createElement(DisplayResultsUIComponent, {
toolProps: toolProps,
groupCarouselComponent: function groupCarouselComponent(param) {
var items = param.items, sendEvent = param.sendEvent;
return /*#__PURE__*/ _react.default.createElement(_components.Carousel, {
items: items,
itemComponent: itemComponent,
sendEvent: sendEvent,
showNavigation: false,
headerComponent: DisplayResultsCarouselHeader
});
}
});
};
return {
layoutComponent: DisplayResultsLayoutComponent,
streamInput: true
};
}