UNPKG

instantsearch-ui-components

Version:

Common UI components for InstantSearch.

52 lines (49 loc) 2.79 kB
import { _ } from '@swc/helpers/esm/_object_spread.js'; import { _ as _$1 } from '@swc/helpers/esm/_object_spread_props.js'; var DEFAULT_TRANSLATIONS = { streamingLabel: 'Curating results…' }; function createDisplayResultsToolComponent(param) { var createElement = param.createElement, Fragment = param.Fragment; return function DisplayResultsTool(userProps) { var toolProps = userProps.toolProps, GroupCarousel = userProps.groupCarouselComponent, userTranslations = userProps.translations; var message = toolProps.message, sendEvent = toolProps.sendEvent; var translations = _({}, DEFAULT_TRANSLATIONS, userTranslations); var output = message === null || message === void 0 ? void 0 : message.output; var intro = typeof (output === null || output === void 0 ? void 0 : output.intro) === 'string' ? output.intro : undefined; var groups = Array.isArray(output === null || output === void 0 ? void 0 : output.groups) ? output.groups : []; var isStreaming = (message === null || message === void 0 ? void 0 : message.state) === 'output-available' && message.preliminary === true; if (!intro && groups.length === 0) { return /*#__PURE__*/ createElement(Fragment, null); } return /*#__PURE__*/ createElement("div", { className: "ais-ChatToolDisplayResults" }, intro && /*#__PURE__*/ createElement("div", { className: "ais-ChatToolDisplayResults-intro" }, intro), groups.map(function(group, groupIndex) { var results = Array.isArray(group.results) ? group.results.filter(function(r) { return Boolean(r) && typeof r.objectID === 'string' && r.objectID !== ''; }) : []; if (results.length === 0) return null; var items = results.map(function(result, idx) { return _$1(_({}, result), { __position: idx + 1 }); }); return /*#__PURE__*/ createElement("div", { key: groupIndex, className: "ais-ChatToolDisplayResults-group" }, group.title && /*#__PURE__*/ createElement("div", { className: "ais-ChatToolDisplayResults-groupTitle" }, group.title), group.why && /*#__PURE__*/ createElement("div", { className: "ais-ChatToolDisplayResults-groupWhy" }, group.why), /*#__PURE__*/ createElement(GroupCarousel, { items: items, sendEvent: sendEvent })); }), isStreaming && /*#__PURE__*/ createElement("div", { className: "ais-ChatToolDisplayResults-streaming" }, translations.streamingLabel)); }; } export { createDisplayResultsToolComponent };